Partage via


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.

Diagramme illustrant l’agent AppDynamics avec une flèche bidirectionnelle vers Spring Boot Apps dans Azure Spring Apps et une flèche pointant vers l’agent AppDynamics.

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.

  1. Créez un groupe de ressources.

  2. Créez une instance d’Azure Spring Apps.

  3. 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
    
  4. 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.

  1. Accédez à votre instance Azure Spring Apps dans le portail Azure.

  2. Sélectionnez Applications dans la section Paramètres du volet de navigation.

    Capture d’écran du Portail Azure montrant la page Applications pour une instance Azure Spring Apps.

  3. Sélectionnez l'application, puis sélectionnez Configuration dans le volet de navigation.

  4. Utilisez l'onglet Paramètres généraux pour mettre à jour les valeurs telles que les options JVM.

    Capture d’écran du Portail Azure montrant la page Configuration pour une application dans une instance Azure Spring Apps avec l’onglet des paramètres Généraux sélectionné.

  5. Sélectionnez Variables d'environnement pour ajouter ou mettre à jour les variables utilisées par votre application.

    Capture d’écran du portail Azure montrant la page Configuration avec l’onglet Variables d’environnement sélectionné.

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 :

Capture d’écran d’AppDynamics montrant le tableau de bord Applications.

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 :

  • api-gateway

    Capture d’écran AppDynamics montrant le tableau de bord Application pour l’exemple d’application de passerelle API.

  • customers-service

    Capture d’écran AppDynamics montrant le tableau de bord Application pour l’exemple d’application de service client.

La capture d’écran suivante vous montre comment obtenir des informations de base à partir du tableau de bord Appels de base de données.

Capture d’écran d’AppDynamics montrant le tableau de bord des 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 :

Capture d’écran d’AppDynamics montrant la page des appels de base de données les plus lents.

Capture d’écran AppDynamics montrant la page des instantanés corrélés accessible à partir de la page des appels de base de données les plus lents.

La capture d’écran suivante montre l’analyse d’utilisation de la mémoire dans la section Tas de la page Mémoire :

Capture d’écran d’AppDynamics montrant la section de segment de mémoire de la page Mémoire.

Vous pouvez également voir le processus de garbage collection, comme illustré dans cette capture d’écran :

Capture d’écran d’AppDynamics montrant la section Garbage Collection de la page Mémoire.

La capture d’écran qui suit présente la page réglage.

Capture d’écran d’AppDynamics montrant la page Transactions lentes.

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 :

Capture d’écran d’AppDynamics montrant Metric Browser.

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