Come monitorare le app Spring Boot con l'agente Java AppDynamics
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
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.
- Connettere l'agente AppDynamics al controller AppDynamics per raccogliere e visualizzare i dati nel controller.
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.
Crea un gruppo di risorse.
Creare un'istanza di Azure Spring Apps.
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
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.
Passare all'istanza di Azure Spring Apps nel portale di Azure.
Selezionare App nella sezione Impostazioni del riquadro di spostamento.
Selezionare l'app e quindi selezionare Configurazione nel riquadro di spostamento.
Usare la scheda Impostazioni generali per aggiornare i valori, ad esempio le opzioni JVM.
Selezionare Variabili di ambiente per aggiungere o aggiornare le variabili usate dall'applicazione.
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:
La scheda Applicazioni mostra le informazioni generali per ognuna delle app, come illustrato negli screenshot seguenti usando applicazioni di esempio:
Lo screenshot seguente mostra come ottenere informazioni di base dal dashboard Chiamate di database.
È anche possibile ottenere informazioni sulle chiamate di database più lente, come illustrato in questi screenshot:
Lo screenshot seguente mostra l'analisi dell'utilizzo della memoria nella sezione Heap della pagina Memoria :
È anche possibile visualizzare il processo di Garbage Collection, come illustrato in questo screenshot:
Lo screenshot seguente mostra la pagina Transazioni lente:
È possibile definire altre metriche per la JVM, come illustrato in questa schermata del 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