Comment surveiller les applications Spring Boot avec l'agent Java AppDynamics

Remarque

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article s'applique à : ✔️ Consommation Standard et dédiée (Aperçu) ✔️ De base/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 affichant 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 affichant 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 dans le Portail Azure affichant la page Configuration pour une application dans une instance Azure Spring Apps 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 AppDynamics montrant la page Applications.

Le tableau de bord de l’application 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 d’application pour l’exemple d’application de passerelle API.

  • customers-service

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

Capture d’écran AppDynamics montrant le tableau de bord 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 AppDynamics montrant la section Tas de la page Mémoire.

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

Capture d’écran 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 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 AppDynamics montrant 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 sera 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 utiliseront 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 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