Come monitorare le app Spring Boot con l'agente Java AppDynamics

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: ✔️ Consumo standard e dedicato (anteprima) ✔️ Basic/Standard ❌️ Enterprise

Questo articolo illustra come usare l'agente Java AppDynamics per monitorare le applicazioni Spring Boot in Azure Spring Apps.

Con l'agente Java AppDynamics è possibile:

  • Monitorare le applicazioni
  • Configurare l'agente Java AppDynamics usando le variabili di ambiente
  • Controllare tutti i dati di monitoraggio dal dashboard appDynamics

Il video seguente presenta l'agente in-process di AppDynamics Java.


Prerequisiti

Attivare l'agente in-process di AppDynamics Java

Per l'intero flusso di lavoro, è necessario:

  • Attivare l'agente in-process di AppDynamics Java in Azure Spring Apps per generare i dati delle metriche dell'applicazione.
  • Connessione l'agente AppDynamics al controller AppDynamics per raccogliere e visualizzare i dati nel controller.

Diagramma che mostra l'agente AppDynamics con una freccia bidirezionale per le app Spring Boot in Azure Spring Apps e la freccia che punta all'agente AppDynamics.

Attivare un'applicazione con l'agente AppDynamics usando l'interfaccia della riga di comando di Azure

Per attivare un'applicazione tramite l'interfaccia della riga di comando di Azure, seguire questa procedura.

  1. Crea un gruppo di risorse.

  2. Creare un'istanza di Azure Spring Apps.

  3. Creare un'applicazione usando il comando seguente. Sostituire i segnaposto <...> con i propri valori.

    az spring app create \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --is-public true
    
  4. Creare una distribuzione con l'agente AppDynamics usando le variabili di ambiente.

    az spring app deploy \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --artifact-path app.jar \
        --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \
        --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \
              APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \
              APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \
              APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \
              APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \
              APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \
              APPDYNAMICS_CONTROLLER_PORT=443
    

Azure Spring Apps preinstalla l'agente Java AppDynamics nel percorso /opt/agents/appdynamics/java/javaagent.jar. È possibile attivare l'agente dalle opzioni JVM delle applicazioni, quindi configurare l'agente usando le variabili di ambiente. È possibile trovare i valori per queste variabili in Monitorare Azure Spring Apps con l'agente Java. Per altre informazioni su come queste variabili consentono di visualizzare e organizzare i report nell'interfaccia utente di AppDynamics, vedere Livelli e nodi.

Attivare un'applicazione con l'agente AppDynamics usando il portale di Azure

Per attivare un'applicazione tramite il portale di Azure, seguire questa procedura.

  1. Passare all'istanza di Azure Spring Apps nel portale di Azure.

  2. Selezionare App nella sezione Impostazioni del riquadro di spostamento.

    Screenshot del portale di Azure che mostra la pagina App per un'istanza di Azure Spring Apps.

  3. Selezionare l'app e quindi selezionare Configurazione nel riquadro di spostamento.

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

    Screenshot del portale di Azure che mostra la pagina Configurazione per un'app in un'istanza di Azure Spring Apps, con la scheda Impostazioni generali selezionata.

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

    Screenshot del portale di Azure che mostra la pagina Configurazione con la scheda Variabili di ambiente selezionata.

Automatizzare il provisioning

È anche possibile eseguire una pipeline di automazione del provisioning usando il modello Terraform, Bicep o 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/appdynamics/java/javaagent.jar"
  ...
    environment_variables = {
      "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
      "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
      "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
      "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
      "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
      "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
      "APPDYNAMICS_CONTROLLER_PORT" : "443"
  }
}

Automatizzare il provisioning con Bicep

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

deploymentSettings: {
  environmentVariables: {
    APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
    APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
    APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
    APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
    APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
    APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
    APPDYNAMICS_CONTROLLER_PORT : '443'
  }
  jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.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": {
    "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
    "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
    "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
    "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
    "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
    "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
    "APPDYNAMICS_CONTROLLER_PORT" : "443"
  },
  "jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
  ...
}

Esaminare i report nel dashboard appDynamics

Questa sezione illustra vari report in AppDynamics.

Lo screenshot seguente mostra una panoramica delle app nel dashboard appDynamics:

Screenshot di AppDynamics che mostra il dashboard Delle applicazioni.

La scheda Applicazioni mostra le informazioni generali per ognuna delle app, come illustrato negli screenshot seguenti usando applicazioni di esempio:

  • api-gateway

    Screenshot di AppDynamics che mostra il dashboard dell'applicazione per l'app api-gateway di esempio.

  • customers-service

    Screenshot di AppDynamics che mostra il dashboard dell'applicazione per l'app di esempio customers-service.

Lo screenshot seguente mostra come ottenere informazioni di base dal dashboard Chiamate di database.

Screenshot di AppDynamics che mostra il dashboard Chiamate database.

È anche possibile ottenere informazioni sulle chiamate di database più lente, come illustrato in questi screenshot:

Screenshot di AppDynamics che mostra la pagina Chiamate di database più lente.

Screenshot di AppDynamics che mostra la pagina Snapshot correlati a cui si accede dalla pagina Chiamate di database più lente.

Lo screenshot seguente mostra l'analisi dell'utilizzo della memoria nella sezione Heap della pagina Memoria :

Screenshot di AppDynamics che mostra la sezione Heap della pagina Memoria.

È anche possibile visualizzare il processo di Garbage Collection, come illustrato in questo screenshot:

Screenshot di AppDynamics che mostra la sezione Garbage Collection della pagina Memoria.

Lo screenshot seguente mostra la pagina Transazioni lente:

Screenshot di AppDynamics che mostra la pagina Transazioni lente.

È possibile definire altre metriche per la JVM, come illustrato in questa schermata del Visualizzatore metriche:

Screenshot di AppDynamics che mostra il visualizzatore metriche.

Visualizzare i log dell'agente AppDynamics

Per impostazione predefinita, Azure Spring Apps stampa i log a livello di informazioni dell'agente AppDynamics 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 AppDynamics dalle posizioni seguenti:

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

Informazioni sull'aggiornamento dell'agente AppDynamics

L'agente AppDynamics viene aggiornato regolarmente con JDK (trimestrale). L'aggiornamento dell'agente potrebbe influire sugli scenari seguenti:

  • Le applicazioni esistenti che usano l'agente AppDynamics prima dell'aggiornamento non vengono modificate, ma richiedono il riavvio o la ridistribuimento per attivare la nuova versione dell'agente AppDynamics.
  • Le applicazioni create dopo l'aggiornamento usano la nuova versione di AppDynamics Agent.

Configurare il traffico in uscita dell'istanza di inserimento della rete virtuale

Per le istanze di inserimento di rete virtuale di Azure Spring Apps, assicurarsi che il traffico in uscita sia configurato correttamente per AppDynamics Agent. Per informazioni dettagliate, vedere Cisco AppDynamics SaaS Domains and IP Ranges and Customer responsibilities for running Azure Spring Apps in a virtual network .For details, see Cisco AppDynamics SaaS domains and IP Ranges and Customer responsibilities for running Azure Spring Apps in a virtual network.

Comprendere le limitazioni

Per comprendere le limitazioni dell'agente AppDynamics, vedere Monitorare Azure Spring Apps con l'agente Java.

Passaggi successivi

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