Comment surveiller les applications Spring Boot avec l'agent Java AppDynamics
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à :✅ Consommation standard et dédiée (préversion) ✅ Essentiel/Standard ❎ Entreprise
Cet article explique comment utiliser l’agent AppDynamics dans le cadre de la surveillance d’applications Spring Boot dans Azure Spring Apps.
Avec l’agent Java AppDynamics, vous pouvez :
- Surveillance des applications
- Configurer l’agent Java AppDynamics à l’aide de variables d’environnement
- Vérifier toutes les données de monitoring à partir du tableau de bord AppDynamics
La vidéo suivante présente l’agent in-process Java AppDynamics.
Prérequis
Activer l’agent in-process Java AppDynamics
Pour l’ensemble du workflow, vous devez :
- Activer l’agent in-process Java AppDynamics dans Azure Spring Apps pour générer des données de métriques d’application.
- Connecter l’agent AppDynamics au contrôleur AppDynamics pour collecter et visualiser les données du contrôleur.
Activer une application avec l’agent AppDynamics à l’aide d’Azure CLI
Pour activer une application par le biais d’Azure CLI, procédez comme suit.
Créez un groupe de ressources.
Créez une instance d’Azure Spring Apps.
Créez une application à l’aide de la commande suivante. Remplacer les espaces réservés <...> par vos valeurs.
az spring app create \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --is-public true
Créez un déploiement avec l’agent AppDynamics à l’aide de variables d’environnement.
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 préinstalle l’agent Java AppDynamics sur le chemin d’accès /opt/agents/appdynamics/java/javaagent.jar. Vous pouvez activer l’agent à partir des options JVM de vos applications, puis configurer l’agent à l’aide de variables d’environnement. Vous pouvez trouver des valeurs pour ces variables dans Surveiller Azure Spring Apps avec l’agent Java. Pour plus d’informations sur la façon dont ces variables permettent d’afficher et d’organiser les rapports dans l’interface utilisateur AppDynamics, consultez Niveaux et nœuds.
Activer une application avec l’agent AppDynamics à l’aide du portail Azure
Pour activer une application par le biais du portail Azure, procédez comme suit.
Accédez à votre instance Azure Spring Apps dans le portail Azure.
Sélectionnez Applications dans la section Paramètres du volet de navigation.
Sélectionnez l'application, puis sélectionnez Configuration dans le volet de navigation.
Utilisez l'onglet Paramètres généraux pour mettre à jour les valeurs telles que les options JVM.
Sélectionnez Variables d'environnement pour ajouter ou mettre à jour les variables utilisées par votre application.
Automatiser le provisionnement
Vous pouvez également exécuter un pipeline d’automatisation du provisionnement à l’aide de Terraform, Bicep ou d’un modèle Azure Resource Manager (modèle ARM). Ce pipeline peut fournir une expérience pratique complète pour instrumenter et surveiller les nouvelles applications que vous créez et déployez.
Automatiser le provisionnement à l’aide de Terraform
Pour configurer les variables d’environnement dans un modèle Terraform, ajoutez le code suivant au modèle, en remplaçant les espaces réservés <...> par vos propres valeurs. Pour plus d’informations, consultez Gérer un déploiement Azure Spring Apps actif.
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"
}
}
Automatiser le provisionnement à l’aide de Bicep
Pour configurer les variables d’environnement dans un fichier Bicep, ajoutez le code suivant au modèle, en remplaçant les espaces réservés <...> par vos propres valeurs. Pour plus d’informations, consultez Microsoft.AppPlatform Spring/apps/déploiements.
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'
}
Automatiser le provisionnement à l’aide d’un modèle ARM
Pour configurer les variables d’environnement dans un modèle ARM, ajoutez le code suivant au modèle, en remplaçant les espaces réservés <...> par vos propres valeurs. Pour plus d’informations, consultez Microsoft.AppPlatform Spring/apps/déploiements.
"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",
...
}
Consulter les rapports dans le tableau de bord AppDynamics
Cette section présente différents rapports dans AppDynamics.
La capture d’écran suivante présente une vue d’ensemble de vos applications dans le tableau de bord AppDynamics :
L’onglet Applications affiche les informations globales pour chacune de vos applications, comme illustré dans les captures d’écran suivantes à l’aide d’exemples d’applications :
La capture d’écran suivante vous montre comment obtenir des informations de base à partir du tableau de bord Appels de base de données.
Vous pouvez également obtenir des informations sur les appels de base de données les plus lents, comme indiqué dans les captures d’écran suivantes :
La capture d’écran suivante montre l’analyse d’utilisation de la mémoire dans la section Tas de la page Mémoire :
Vous pouvez également voir le processus de garbage collection, comme illustré dans cette capture d’écran :
La capture d’écran qui suit présente la page réglage.
Vous pouvez définir plus de métriques pour la machine virtuelle Java (JVM), comme illustré dans cette capture d’écran de l’Explorateur de métriques :
Afficher les journaux de l’agent AppDynamics
Par défaut, Azure Spring Apps imprime les journaux de niveau d’information de l’agent AppDynamics vers STDOUT
. Les journaux sont mélangés avec les journaux des applications. Vous pouvez récupérer la version d’agent explicite à partir des journaux des applications.
Vous pouvez également obtenir les journaux de l’agent AppDynamics aux emplacements suivants :
- Journaux Azure Spring Apps
- Azure Spring Apps Application Insights
- Azure Spring Apps LogStream
En savoir plus sur la mise à niveau de l’agent AppDynamics
L’agent AppDynamics est mis à niveau régulièrement avec JDK (chaque trimestre). La mise à jour de l’agent peut affecter les scénarios suivants :
- Les applications existantes qui utilisent l’agent AppDynamics avant la mise à jour sont inchangées, mais nécessitent un redémarrage ou un redéploiement pour faire appel à la nouvelle version de l’agent AppDynamics.
- Les applications créées après la mise à jour utilisent la nouvelle version de l’agent AppDynamics.
Configuration du trafic sortant de l’instance d’injection dans VNet
Pour les instances d’injection de réseau virtuel d’Azure Spring Apps, assurez-vous que le trafic sortant est correctement configuré pour l’agent AppDynamics. Pour plus d’informations, consultez Domaines SaaS de Cisco AppDynamics et plages d’adresses IP et Responsabilités du client pour l’exécution d’Azure Spring Apps dans un réseau virtuel.
Comprendre les limitations
Pour comprendre les limitations de l’agent AppDynamics, consultez Surveiller Azure Spring Apps avec l’agent Java.
Étapes suivantes
Utiliser l’agent In-process Java d’Application Insights dans Azure Spring Apps