Solution CloudWatch : charge de travail JVM sur Amazon EC2 - Amazon CloudWatch

Solution CloudWatch : charge de travail JVM sur Amazon EC2

Cette solution vous aide à configurer la collecte de métriques prête à l’emploi à l’aide des agents CloudWatch pour l’application JVM s’exécutant sur des instances EC2. En outre, elle vous aide à mettre en place un tableau de bord CloudWatch préconfiguré. Pour des informations générales sur toutes les solutions d’observabilité CloudWatch, consultez Solutions d’observabilité CloudWatch.

Prérequis

Cette solution est pertinente pour les conditions suivantes :

Avantages

La solution assure la surveillance de la JVM et fournit des informations précieuses pour les cas d’utilisation suivants :

  • Surveiller l’utilisation de la mémoire tas et non tas de la JVM.

  • Analyser le chargement des threads et des classes pour détecter les problèmes de simultanéité.

  • Suivre le récupérateur de mémoire pour identifier les fuites de mémoire.

  • Basculer entre différentes applications JVM configurées via la solution sous le même compte.

Vous trouverez ci-dessous les principaux avantages de la solution :

  • Automatise la collecte de métriques pour la JVM à l’aide de la configuration de l’agent CloudWatch, éliminant ainsi l’instrumentation manuelle.

  • Fournit un tableau de bord CloudWatch préconfiguré et consolidé pour les métriques JVM. Le tableau de bord traitera automatiquement les métriques des nouvelles instances EC2 JVM configurées à l’aide de la solution, même si ces métriques n’existent pas lorsque vous créez le tableau de bord pour la première fois. Il vous permet également de regrouper les métriques en applications logiques pour faciliter la mise au point et la gestion.

L’image suivante est un exemple de tableau de bord pour cette solution.

Exemple de tableau de bord JVM

Coûts

Cette solution crée et utilise des ressources dans votre compte. Les coûts d’utilisation standard vous sont facturés, y compris les éléments suivants :

  • Toutes les métriques collectées par l’agent CloudWatch sont facturées en tant que métriques personnalisées. Le nombre de métriques utilisées par cette solution dépend du nombre d’hôtes EC2.

    • Chaque hôte JVM configuré pour la solution publie un total de 18 métriques plus une métrique (disk_used_percent) pour laquelle le nombre de métriques dépend du nombre de chemins d’accès de l’hôte.

  • Un tableau de bord personnalisé.

  • Les opérations API demandées par l’opérateur CloudWatch pour publier les métriques. Avec la configuration par défaut de cette solution, l’agent CloudWatch appelle PutMetricData une fois par minute pour chaque hôte EC2. Cela signifie que l’API PutMetricData sera appelée 30*24*60=43,200 au cours d’un mois de 30 jours pour chaque hôte EC2.

Pour plus d'informations sur la tarification CloudWatch, consultez Tarification d'Amazon CloudWatch.

Le calculateur de prix peut vous aider à estimer les coûts mensuels approximatifs de l’utilisation de cette solution.

Pour utiliser le calculateur de prix afin d’estimer les coûts mensuels de votre solution
  1. Ouvrez le calculateur de prix Amazon CloudWatch.

  2. Dans la section Choisir une région, sélectionnez la région dans laquelle vous souhaitez déployer la solution.

  3. Dans la section Métriques, pour Nombre de métriques, entrez (18 + average number of disk paths per EC2 host) * number of EC2 instances configured for this solution.

  4. Dans la section API, pour Nombre de demandes d’API, entrez 43200 * number of EC2 instances configured for this solution.

    Par défaut, l’agent CloudWatch effectue une opération PutMetricData chaque minute pour chaque hôte EC2.

  5. Dans la section Tableaux de bord et alarmes, pour Nombre de tableaux de bord, entrez 1.

  6. Vous pouvez voir vos coûts mensuels estimés en bas du calculateur de prix.

Configuration de l’agent CloudWatch pour cette solution

L’agent CloudWatch est un logiciel qui s’exécute en continu et de manière autonome sur vos serveurs et dans les environnements conteneurisés. Il collecte des métriques, des journaux et des traces à partir de votre infrastructure et de vos applications et les envoie à CloudWatch et X-Ray.

Pour plus d’informations sur l’agent CloudWatch, consultez Collecte des métriques, des journaux et des suivis à l’aide de l’agent CloudWatch.

La configuration de l’agent dans cette solution recueille les métriques fondatrices de la solution. L’agent CloudWatch peut être configuré pour collecter davantage de métriques JVM que ce que le tableau de bord affiche par défaut. Pour obtenir une liste de toutes les métriques JVM que vous pouvez collecter, consultez Collecte des métriques JVM. Pour des informations générales sur la configuration de l’agent CloudWatch, consultez Métriques collectées par l'agent CloudWatch.

Exposer les ports JMX pour l’application JVM

L’agent CloudWatch s’appuie sur JMX pour collecter les métriques liées au processus JVM. Pour que cela soit possible, vous devez exposer le port JMX de votre application JVM. Les instructions pour exposer le port JMX dépendent du type de charge de travail que vous utilisez pour votre application JVM. Consultez la documentation de votre application pour trouver ces instructions.

En général, pour activer un port JMX à des fins de surveillance et de gestion, vous devez définir les propriétés système suivantes pour votre application JVM. Veillez à spécifier un numéro de port inutilisé. L’exemple suivant configure JMX sans authentification. Si vos politiques/exigences de sécurité vous obligent à activer JMX avec une authentification par mot de passe ou SSL pour l’accès à distance, reportez-vous à la documentation JMX pour définir la propriété requise.

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=port-number -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

Examinez les scripts de démarrage et les fichiers de configuration de votre application pour trouver le meilleur endroit où ajouter ces arguments. Lorsque vous exécutez un fichier .jar à partir de la ligne de commande, cette commande peut ressembler à ce qui suit, où pet-search.jar est le nom du jar de l’application.

$ java -jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false pet-search.jar

Configuration de l’agent pour cette solution

Les métriques collectées par l’agent sont définies dans la configuration de l’agent. La solution fournit des configurations d’agent pour collecter les métriques recommandées avec des dimensions appropriées pour le tableau de bord de la solution.

Les étapes du déploiement de la solution sont décrites plus loin dans Déployer l’agent pour votre solution. Les informations suivantes ont pour but de vous aider à comprendre comment personnaliser la configuration de l’agent en fonction de votre environnement.

Vous devez adapter certaines parties de la configuration de l’agent à votre environnement :

  • Le numéro de port JMX est le numéro de port que vous avez configuré dans la section précédente de cette documentation. Il se trouve dans la ligne endpoint de la configuration.

  • ProcessGroupName : fournissez des noms significatifs pour la dimension ProcessGroupName. Ces noms doivent représenter le cluster, l’application ou le regroupement de services pour les instances EC2 exécutant la même application ou le même processus. Cela vous aide à regrouper les métriques des instances appartenant au même groupe de processus JVM, ce qui permet d’obtenir une vue unifiée des performances du cluster, de l’application et du service dans le tableau de bord de la solution.

Par exemple, si deux applications Java s’exécutent dans le même compte, l’une pour l’application order-processing et l’autre pour l’application inventory-management, vous devez définir les dimensions ProcessGroupName en conséquence dans la configuration de l’agent de chaque instance.

  • Pour les instances de l’application order-processing, définissez ProcessGroupName=order-processing.

  • Pour les instances de l’application inventory-management, définissez ProcessGroupName=inventory-management.

Lorsque vous suivez ces directives, le tableau de bord de la solution regroupera automatiquement les métriques en fonction de la dimension ProcessGroupName. Le tableau de bord comprendra des options déroulantes pour sélectionner et afficher les métriques d’un groupe de processus spécifique, ce qui vous permettra de surveiller séparément les performances des différents groupes de processus.

Configuration de l’agent pour les hôtes JVM

Utilisez la configuration suivante de l’agent CloudWatch sur les instances EC2 où vos applications Java sont déployées. La configuration sera stockée en tant que paramètre dans le magasin de paramètres de SSM, comme détaillé plus loin dans Étape 2 : stockez le fichier de configuration recommandé de l’agent CloudWatch dans le magasin de paramètres de Systems Manager..

Remplacez ProcessGroupName par le nom de votre groupe de processus. Remplacez port-number par le port JMX de votre application Java. Si JMX a été activé avec une authentification par mot de passe ou SSL pour l’accès à distance, consultez Collecte des métriques Java Management Extensions (JMX) pour obtenir des informations sur le paramétrage de TLS ou de l’autorisation dans la configuration de l’agent, le cas échéant.

Les métriques EC2 présentées dans cette configuration (configuration indiquée en dehors du bloc JMX) ne fonctionnent que pour les instances Linux et macOS. Si vous utilisez des instances Windows, vous pouvez choisir d’omettre ces métriques dans la configuration. Pour plus d’informations sur les métriques collectées sur les instances Windows, consultez Métriques collectées par l'agent CloudWatch sur les instances Windows Server.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "jvm": { "measurement": [ "jvm.classes.loaded", "jvm.gc.collections.count", "jvm.gc.collections.elapsed", "jvm.memory.heap.committed", "jvm.memory.heap.max", "jvm.memory.heap.used", "jvm.memory.nonheap.committed", "jvm.memory.nonheap.max", "jvm.memory.nonheap.used", "jvm.threads.count" ] }, "append_dimensions": { "ProcessGroupName": "ProcessGroupName" } } ], "disk": { "measurement": [ "used_percent" ] }, "mem": { "measurement": [ "used_percent" ] }, "swap": { "measurement": [ "used_percent" ] }, "netstat": { "measurement": [ "tcp_established", "tcp_time_wait" ] } } } }

Déployer l’agent pour votre solution

Il existe plusieurs approches pour installer l’agent CloudWatch, en fonction du cas d’utilisation. Nous vous recommandons d’utiliser Systems Manager pour cette solution. Il offre une expérience de console et simplifie la gestion d’une flotte de serveurs gérés au sein d’un seul compte AWS. Les instructions de cette section utilisent Systems Manager et sont destinées aux cas où vous n’avez pas l’agent CloudWatch en cours d’exécution avec les configurations existantes. Vous pouvez vérifier si l’agent CloudWatch est en cours d’exécution en suivant les étapes de la section Vérification de l'exécution de l'agent CloudWatch.

Si vous exécutez déjà l’agent CloudWatch sur les hôtes EC2 où la charge de travail est déployée et que vous gérez les configurations de l’agent, vous pouvez ignorer les instructions de cette section et suivre votre mécanisme de déploiement existant pour mettre à jour la configuration. Veillez à fusionner la configuration de l’agent de la JVM avec votre configuration d’agent existante, puis déployez la configuration fusionnée. Si vous utilisez Systems Manager pour stocker et gérer la configuration de l’agent CloudWatch, vous pouvez fusionner la configuration avec la valeur de paramètre existante. Pour plus d’informations, consultez Gestion des fichiers de configuration de l’agent CloudWatch.

Note

L’utilisation de Systems Manager pour déployer les configurations suivantes de l’agent CloudWatch remplacera ou écrasera toute configuration existante de l’agent CloudWatch sur vos instances EC2. Vous pouvez modifier cette configuration pour l’adapter à votre environnement unique ou à votre cas d’utilisation. Les métriques définies dans cette solution sont le minimum requis pour le tableau de bord recommandé.

Le processus de déploiement comprend les étapes suivantes :

  • Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.

  • Étape 2 : stockez le fichier de configuration de l’agent recommandé dans le magasin de paramètres de Systems Manager.

  • Étape 3 : installez l’agent CloudWatch sur une ou plusieurs instances EC2 à l’aide d’une pile CloudFormation.

  • Étape 4 : vérifiez que l’installation de l’agent est configurée correctement.

Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.

Vous devez accorder l’autorisation à Systems Manager d’installer et de configurer l’agent CloudWatch. Vous devez également accorder l’autorisation à l’agent CloudWatch de publier la télémétrie de votre instance EC2 vers CloudWatch. Assurez-vous que le rôle IAM attaché à l’instance dispose des politiques IAM CloudWatchAgentServerPolicy et AmazonSSMManagedInstanceCore.

Étape 2 : stockez le fichier de configuration recommandé de l’agent CloudWatch dans le magasin de paramètres de Systems Manager.

Le magasin de paramètres simplifie l’installation de l’agent CloudWatch sur une instance EC2 en stockant et en gérant de manière sécurisée les paramètres de configuration, éliminant ainsi le besoin de valeurs codées en dur. Cela garantit un processus de déploiement plus sûr et plus flexible, permettant une gestion centralisée et des mises à jour plus faciles des configurations sur plusieurs instances.

Suivez les étapes suivantes pour stocker le fichier de configuration de l’agent CloudWatch recommandé en tant que paramètre dans le magasin de paramètres.

Pour créer le fichier de configuration de l’agent CloudWatch en tant que paramètre
  1. Ouvrez la console AWS Systems Manager à l’adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le volet de navigation, sélectionnez Gestion des applications, Magasin de paramètres.

  3. Suivez ces étapes pour créer un nouveau paramètre pour la configuration.

    1. Sélectionnez Create parameter (Créer un paramètre).

    2. Dans la zone Nom, entrez un nom que vous utiliserez pour référencer le fichier de configuration de l’agent CloudWatch dans les étapes suivantes. Par exemple, AmazonCloudWatch-JVM-Configuration.

    3. (Facultatif) Dans la zone Description, saisissez une description pour le paramètre.

    4. Pour Niveau de paramètre, choisissez Standard.

    5. Pour Type, choisissez String (Chaîne).

    6. Pour Type de données, choisissez texte.

    7. Dans la case Valeur, collez le bloc JSON correspondant qui a été répertorié dans Configuration de l’agent pour les hôtes JVM. Veillez à personnaliser la valeur de la dimension de regroupement et le numéro de port comme indiqué.

    8. Sélectionnez Create parameter (Créer un paramètre).

Étape 3 : installez l’agent CloudWatch et appliquez la configuration à l’aide d’un modèle CloudFormation.

Vous pouvez utiliser AWS CloudFormation pour installer l’agent et le configurer pour utiliser la configuration de l’agent CloudWatch que vous avez créée dans les étapes précédentes.

Pour installer et configurer l’agent CloudWatch pour cette solution
  1. Ouvrez l’assistant Création rapide de pile d’CloudFormation à l’aide de ce lien : https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json .

  2. Vérifiez que la région sélectionnée sur la console est la région où la charge de travail JVM s’exécute.

  3. Pour Nom de la pile, entrez un nom pour identifier cette pile, par exemple CWAgentInstallationStack.

  4. Dans la section Paramètres, indiquez les éléments suivants :

    1. Pour CloudWatchAgentConfigSSM, entrez le nom du paramètre Systems Manager pour la configuration de l’agent que vous avez créé précédemment, tel que AmazonCloudWatch-JVM-Configuration.

    2. Pour sélectionner les instances cibles, vous avez deux options.

      1. Pour InstanceIds, indiquez une liste d’identifiants d’instance délimitée par des virgules où vous voulez installer l’agent CloudWatch avec cette configuration. Vous pouvez répertorier une seule instance ou plusieurs instances.

      2. Si vous effectuez un déploiement à grande échelle, vous pouvez spécifier la TagKey et la TagValue correspondante pour cibler toutes les instances EC2 avec ce balisage et cette valeur. Si vous spécifiez une TagKey, vous devez spécifier une TagValue correspondante. (Pour un groupe Auto Scaling, spécifiez aws:autoscaling:groupName pour la TagKey et spécifiez le nom du groupe Auto Scaling pour la TagValue afin de déployer vers toutes les instances au sein du groupe Auto Scaling).

        Si vous spécifiez à la fois les paramètres InstanceIds et TagKeys, les InstanceIds seront prioritaires et les balises seront ignorées.

  5. Examinez les paramètres, puis choisissez Créer la pile.

Si vous voulez d’abord modifier le fichier modèle pour le personnaliser, choisissez l’option Charger un fichier modèle sous Assistant de création de pile pour charger le modèle modifié. Pour plus d’informations, consultez Création d’une pile sur la console CloudFormation. Vous pouvez utiliser le lien suivant pour télécharger le modèle : https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json.

Note

Une fois cette étape terminée, ce paramètre Systems Manager sera associé aux agents CloudWatch exécutés dans les instances ciblées. Cela signifie que :

  1. Si le paramètre Systems Manager est supprimé, l’agent s’arrêtera.

  2. Si le paramètre Systems Manager est modifié, les modifications de configuration s’appliqueront automatiquement à l’agent à la fréquence planifiée qui est de 30 jours par défaut.

  3. Si vous voulez appliquer immédiatement les modifications apportées à ce paramètre Systems Manager, vous devez exécuter à nouveau cette étape. Pour plus d’informations sur les associations, consultez Travailler avec des associations dans Systems Manager.

Étape 4 : vérifiez que la configuration de l’agent est correcte

Vous pouvez vérifier si l’agent CloudWatch est installé en suivant les étapes de l’étape Vérification de l'exécution de l'agent CloudWatch. Si l’agent CloudWatch n’est pas installé et ne fonctionne pas, assurez-vous que vous avez tout configuré correctement.

Si tout est configuré correctement, alors vous devriez voir les métriques de la JVM être publiées sur CloudWatch. Vous pouvez consulter la console CloudWatch pour vérifier qu’elles sont bien publiées.

Pour vérifier que les métriques JVM sont publiées dans CloudWatch
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Choisissez Métriques, Toutes les métriques.

  3. Assurez-vous d’avoir sélectionné la région dans laquelle vous avez déployé la solution et choisissez Espaces de noms personnalisés, CWAgent.

  4. Recherchez les métriques mentionnées dans Configuration de l’agent pour les hôtes JVM, par exemple jvm.memory.heap.used. Si vous voyez des résultats pour ces métriques, c’est qu’elles sont publiées sur CloudWatch.

Créer le tableau de bord de la solution JVM

Le tableau de bord fourni par cette solution présente les métriques de la machine virtuelle Java (JVM) sous-jacente du serveur. Il offre une vue d’ensemble de la JVM en agrégeant et en présentant les métriques de toutes les instances, fournissant ainsi un résumé de haut niveau de la santé globale et de l’état opérationnel. En outre, le tableau de bord présente une répartition des principaux contributeurs (les 10 premiers par widget de métrique) pour chaque métrique. Cela vous aide à identifier rapidement les valeurs aberrantes ou les instances qui contribuent de manière significative aux métriques observées.

Le tableau de bord de la solution n’affiche pas les métriques EC2. Pour afficher les métriques EC2, vous devrez utiliser le tableau de bord automatique EC2 pour voir les métriques EC2 vended et utiliser le tableau de bord de la console EC2 pour voir les métriques EC2 qui sont collectées par l’agent CloudWatch. Pour plus d’informations sur les tableaux de bord automatiques pour les services AWS, consultez Affichage d’un tableau de bord CloudWatch pour un seul service AWS.Pour plus d’informations sur les tableaux de bord automatiques pour les services, consultez.

Pour créer le tableau de bord, vous pouvez utiliser les options suivantes :

  • Utilisez la console CloudWatch pour créer le tableau de bord.

  • Utilisez la console AWS CloudFormation pour déployer le tableau de bord.

  • Téléchargez l’infrastructure en tant que code d’AWS CloudFormation et intégrez-la dans le cadre de votre automatisation d’intégration continue (CI).

En utilisant la console CloudWatch pour créer un tableau de bord, vous pouvez prévisualiser le tableau de bord avant de le créer et de le facturer.

Note

Le tableau de bord créé avec CloudFormation dans cette solution affiche les métriques de la Région où la solution est déployée. Veillez à créer la pile CloudFormation dans la région où vos métriques JVM sont publiées.

Si les métriques de l’agent CloudWatch sont publiées dans un espace de noms différent de CWAgent (par exemple, si vous avez fourni un espace de noms personnalisé), vous devrez modifier la configuration CloudFormation pour remplacer CWAgent par l’espace de noms personnalisé que vous utilisez.

Pour créer le tableau de bord via la console CloudWatch
Note

Les tableaux de bord de la solution affichent actuellement les métriques liées à la récupération de mémoire uniquement pour le récupérateur de mémoire G1, qui est le récupérateur par défaut pour les dernières versions de Java. Si vous utilisez un algorithme de récupération de mémoire différent, les widgets relatifs à la récupération de mémoire sont vides. Toutefois, vous pouvez personnaliser ces widgets en modifiant le modèle CloudFormation du tableau de bord et en appliquant le type de récupération de mémoire approprié à la dimension du nom des métriques relatives à la récupération de mémoire. Par exemple, si vous utilisez la récupération de mémoire parallèle, changez le name=\"G1 Young Generation\" en name=\"Parallel GC\" de la métrique de comptage de la récupération de mémoire jvm.gc.collections.count.

  1. Ouvrez la console CloudWatch Créer un tableau de bord à l’aide de ce lien : https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=JvmOnEc2&referrer=os-catalog.

  2. Vérifiez que la région sélectionnée sur la console est la région où la charge de travail JVM s’exécute.

  3. Saisissez le nom du tableau de bord, puis choisissez Créer le tableau de bord.

    Pour différencier facilement ce tableau de bord de tableaux de bord similaires dans d’autres régions, nous vous recommandons d’inclure le nom de la région dans le nom du tableau de bord, par exemple JVMDashboard-us-east-1.

  4. Prévisualisez le tableau de bord et cliquez sur Enregistrer pour créer le tableau de bord.

Pour créer le tableau de bord via CloudFormation, procédez comme suit.
  1. Ouvrez l’assistant Création rapide de pile d’CloudFormation à l’aide de ce lien : https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/JVM_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json .

  2. Vérifiez que la région sélectionnée sur la console est la région où la charge de travail JVM s’exécute.

  3. Pour Nom de la pile, entrez un nom pour identifier cette pile, par exemple JVMDashboardStack.

  4. Dans la section Paramètres, indiquez le nom du tableau de bord dans le paramètre DashboardName.

    Pour différencier facilement ce tableau de bord de tableaux de bord similaires dans d’autres régions, nous vous recommandons d’inclure le nom de la région dans le nom du tableau de bord, par exemple JVMDashboard-us-east-1.

  5. Validez les capacités d’accès pour les transformateurs sous Capacités et transformateurs. Notez que CloudFormation n’ajoute aucune ressource IAM.

  6. Examinez les paramètres, puis choisissez Créer la pile.

  7. Une fois que le statut de la pile est CREATE_COMPLETE, sélectionnez l’onglet Ressources sous la pile créée, puis cliquez sur le lien sous ID physique pour accéder au tableau de bord. Vous pouvez également accéder au tableau de bord dans la console CloudWatch en choisissant Tableaux de bord dans le volet de navigation gauche de la console, et en trouvant le nom du tableau de bord sous Tableaux de bord personnalisés.

Si vous voulez modifier le fichier modèle pour l’adapter à vos besoins, vous pouvez utiliser l’option Charger un fichier modèle sous Assistant de création de pile pour charger le modèle modifié. Pour plus d’informations, consultez Création d’une pile sur la console CloudFormation. Vous pouvez utiliser ce lien pour télécharger le modèle : https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/JVM_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json .

Note

Les tableaux de bord de la solution affichent actuellement les métriques liées à la récupération de mémoire uniquement pour le récupérateur de mémoire G1, qui est le récupérateur par défaut pour les dernières versions de Java. Si vous utilisez un algorithme de récupération de mémoire différent, les widgets relatifs à la récupération de mémoire sont vides. Toutefois, vous pouvez personnaliser ces widgets en modifiant le modèle CloudFormation du tableau de bord et en appliquant le type de récupération de mémoire approprié à la dimension du nom des métriques relatives à la récupération de mémoire. Par exemple, si vous utilisez la récupération de mémoire parallèle, changez le name=\"G1 Young Generation\" en name=\"Parallel GC\" de la métrique de comptage de la récupération de mémoire jvm.gc.collections.count.

Démarrer avec le tableau de bord JVM

Voici quelques tâches que vous pouvez essayer avec le nouveau tableau de bord de la JVM. Ces tâches vous permettent de vérifier que le tableau de bord fonctionne correctement et vous donnent une expérience pratique de son utilisation pour surveiller un groupe de processus JVM. Au fur et à mesure de vos essais, vous vous familiariserez avec la navigation dans le tableau de bord et l’interprétation des métriques visualisées.

Sélectionner un groupe de processus

Utilisez la liste déroulante Nom du groupe de processus JVM pour sélectionner le groupe de processus que vous voulez surveiller. Le tableau de bord se met automatiquement à jour pour afficher les métriques du groupe de processus sélectionné. Si vous disposez de plusieurs applications ou environnements Java, chacun d’entre eux peut être représenté par un groupe de processus distinct. En sélectionnant le groupe de processus approprié, vous vous assurez d’afficher les métriques spécifiques à l’application ou à l’environnement que vous voulez analyser.

Examiner l’utilisation de la mémoire

Dans la section Présentation du tableau de bord, vous trouverez les widgets Pourcentage d’utilisation de la mémoire tas et Pourcentage d’utilisation de la mémoire non tas. Ils indiquent le pourcentage de mémoire tas et non tas utilisé par toutes les JVM du groupe de processus sélectionné. Un pourcentage élevé indique une sollicitation de la mémoire susceptible d’entraîner des problèmes de performances ou des exceptions OutOfMemoryError. Vous pouvez également analyser l’utilisation du tas par hôte sous Utilisation de la mémoire par hôte pour vérifier les hôtes ayant une utilisation élevée.

Analyser les threads et les classes chargées

Dans la section Threads et classes chargées par hôte, trouvez les widgets Compte des 10 premiers threads et Les 10 premières classes chargées. Recherchez les JVM dont le nombre de threads ou de classes est anormalement élevé par rapport aux autres. Un trop grand nombre de threads peut indiquer des fuites de threads ou une simultanéité excessive, tandis qu’un grand nombre de classes chargées pourrait indiquer des fuites potentielles du chargeur de classes ou une génération dynamique de classes inefficace.

Identifier les problèmes de récupération de mémoire

Dans la section Récupération de mémoire, trouvez les widgets Les 10 principales invocations de récupération de mémoire par minute et Les 10 principales durées de récupération de mémoire pour les différents types de récupérateur de mémoire : Jeune, Simultanéité, et Mixte. Recherchez les JVM qui présentent un nombre anormalement élevé de collectes ou des durées de collecte trop longues par rapport aux autres. Cela peut indiquer des problèmes de configuration ou des fuites de mémoire.