Come monitorare le app Spring Boot con l'agente Java di New Relic

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Questo articolo si applica a: ✔️ Utilizzo standard e dedicato (anteprima) ✔️ Basic/Standard ❌ Enterprise

Questo articolo illustra come monitorare le applicazioni Spring Boot in Azure Spring Apps con l'agente Java di New Relic.

Con l'agente Java di New Relic è possibile:

  • Usare l'agente Java di New Relic.
  • Configurare l'agente Java di New Relic usando le variabili di ambiente.
  • Controllare tutti i dati di monitoraggio dal dashboard di New Relic.

Il video seguente descrive come attivare e monitorare le applicazioni Spring Boot in Azure Spring Apps usando New Relic One.


Prerequisiti

Attivare New Relic Java nell'agente di elaborazione

Usare la procedura seguente per accedere all'agente:

  1. Creare un'istanza di Azure Spring Apps.

  2. Crea un'applicazione.

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --is-public true \
    
  3. Creare una distribuzione con l'agente New Relic e le variabili di ambiente.

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --artifact-path app.jar \
        --jvm-options="-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar" \
        --env NEW_RELIC_APP_NAME=appName \
              NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
    

Azure Spring Apps preinstalla l'agente Java di New Relic in /opt/agents/newrelic/java/newrelic-agent.jar. I clienti possono attivare l'agente dalle opzioni JVM delle applicazioni e configurare l'agente usando le variabili di ambiente dell'agente Java di New Relic.

Azure portal

È anche possibile attivare questo agente dal portale di Azure con la procedura seguente.

  1. Nell'istanza di Azure Spring Apps selezionare App nel riquadro di spostamento.

    Screenshot of the Azure portal showing the Apps page for an Azure Spring Apps instance.

  2. Selezionare l'applicazione dall'elenco e quindi selezionare Configurazione nel riquadro di spostamento.

  3. Usare la scheda Impostazioni generali per aggiornare i valori, ad esempio le opzioni JVM.

    Screenshot of the Azure portal showing the Configuration page for an app with the General settings tab selected.

  4. Selezionare Variabili di ambiente per aggiungere o aggiornare le variabili usate dall'applicazione.

    Screenshot of the Azure portal showing the Configuration page for an app with the Environment variables tab selected.

  5. Visualizzare la pagina di riepilogo api/gateway dell'applicazione dal dashboard di New Relic.

    Screenshot of the New Relic dashboard showing the API Gateway summary page.

  6. Visualizzare la pagina Di riepilogo dei clienti dell'applicazione dal dashboard di New Relic.

    Screenshot of the New Relic dashboard showing the Customers Service page.

  7. Visualizzare la pagina Mapping dei servizi dal dashboard di New Relic.

    Screenshot of the New Relic dashboard showing the Service Map page.

  8. Visualizzare la pagina JVMs dell'applicazione dal dashboard di New Relic.

    Screenshot of the New Relic dashboard showing the JVM page.

  9. Visualizzare il profilo dell'applicazione dal dashboard di New Relic.

    Screenshot of the New Relic dashboard showing the Application Profile page.

Automatizzare il provisioning

È anche possibile eseguire una pipeline di automazione del provisioning usando Terraform, Bicep o un modello di Azure Resource Manager (modello di Resource Manager). Questa pipeline può offrire un'esperienza pratica completa per instrumentare e monitorare tutte le nuove applicazioni create e distribuite.

Automatizzare il provisioning con Terraform

Per configurare le variabili di ambiente in un modello Terraform, aggiungere il codice seguente al modello, sostituendo i <segnaposto ...> con i propri valori. Per altre informazioni, vedere Gestire una distribuzione di App Azure Spring attive.

resource "azurerm_spring_cloud_java_deployment" "example" {
  ...
  jvm_options = "-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar"
  ...
    environment_variables = {
      "NEW_RELIC_APP_NAME": "<app-name>",
      "NEW_RELIC_LICENSE_KEY": "<new-relic-license-key>"
  }
}

Automatizzare il provisioning con un file Bicep

Per configurare le variabili di ambiente in un file Bicep, aggiungere il codice seguente al modello, sostituendo i <segnaposto ...> con i propri valori. Per altre informazioni, vedere Microsoft.AppPlatform Spring/apps/deployments.

deploymentSettings: {
  environmentVariables: {
    NEW_RELIC_APP_NAME : '<app-name>',
    NEW_RELIC_LICENSE_KEY : '<new-relic-license-key>'
  },
  jvmOptions: '-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar',
  ...
}

Automatizzare il provisioning usando un modello di Resource Manager

Per configurare le variabili di ambiente in un modello di Resource Manager, aggiungere il codice seguente al modello, sostituendo i <segnaposto ...> con i propri valori. Per altre informazioni, vedere Microsoft.AppPlatform Spring/apps/deployments.

"deploymentSettings": {
  "environmentVariables": {
    "NEW_RELIC_APP_NAME" : "<app-name>",
    "NEW_RELIC_LICENSE_KEY" : "<new-relic-license-key>"
  },
  "jvmOptions": "-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar",
  ...
}

Inoltrare i log dell'applicazione a New Relic

L'agente New Relic può raccogliere i log delle applicazioni direttamente dalle app e inoltrarli a New Relic. Per altre informazioni, vedere Inoltrare i log a New Relic e ai log di APM nel contesto.

Visualizzare i log dell'agente Java di New Relic

Per impostazione predefinita, Azure Spring Apps stampa i log dell'agente Java di New Relic in STDOUT. I log vengono misti con i log dell'applicazione. È possibile trovare la versione esplicita dell'agente dai log applicazioni.

È anche possibile ottenere i log dell'agente New Relic dalle posizioni seguenti:

  • Log di Azure Spring Apps
  • Azure Spring Apps Application Insights
  • LogStream di App Spring di Azure

È possibile usare alcune variabili di ambiente fornite da New Relic per configurare la registrazione del nuovo agente, ad esempio, NEW_RELIC_LOG_LEVEL per controllare il livello dei log. Per altre informazioni, vedere Configurazione della registrazione di New Relic.

Nota

Non usare finer o finest a meno che il supporto di New Relic non richieda di farlo. Questi livelli di registrazione possono generare un sovraccarico eccessivo. Per la maggior parte delle situazioni, usare info.

Attenzione

È consigliabile non eseguire l'override del comportamento predefinito di registrazione fornito da Azure Spring Apps for New Relic. In tal caso, gli scenari di registrazione descritti in precedenza vengono bloccati e i file di log potrebbero andarsi persi. Ad esempio, non è consigliabile passare le variabili di ambiente seguenti alle applicazioni. I file di log possono essere persi dopo il riavvio o la ridistribuzione delle applicazioni.

  • NEW_RELIC_LOG
  • NEW_RELIC_LOG_FILE_PATH

Aggiornamento/aggiornamento di New Relic Java Agent

L'agente Java di New Relic aggiorna regolarmente JDK. L'aggiornamento/aggiornamento dell'agente può influire sugli scenari seguenti.

  • Le applicazioni esistenti che usano l'agente Java New Relic prima dell'aggiornamento non vengono modificate.
  • Le applicazioni esistenti che usano l'agente Java New Relic prima dell'aggiornamento richiedono il riavvio o la ridistribuimento per coinvolgere la nuova versione dell'agente Java di New Relic.
  • Le nuove applicazioni create dopo l'aggiornamento/aggiornamento usano la nuova versione dell'agente Java di New Relic.

Configurazione del traffico in uscita dell'istanza di inserimento della rete virtuale

Per un'istanza vnet injection di Azure Spring Apps, è necessario assicurarsi che il traffico in uscita sia configurato correttamente per l'agente Java di New Relic. Per altre informazioni, vedere Reti di New Relic.

Passaggi successivi

Usare l'agente Java In-Process di Application Insights in Azure Spring Apps