Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CloudWatch solution : charge de travail JVM sur Amazon EC2
Cette solution vous permet de configurer la collecte de out-of-the-box métriques à l'aide d' CloudWatch agents pour les applications JVM exécutées sur des EC2 instances. En outre, il vous aide à configurer un tableau de CloudWatch bord préconfiguré. Pour des informations générales sur toutes les solutions CloudWatch d'observabilité, consultezCloudWatch solutions d'observabilité.
Rubriques
Prérequis
Cette solution est pertinente pour les conditions suivantes :
Versions prises en charge : Java LTS versions 8, 11, 17 et 21
Calcul : Amazon EC2
Prend en charge jusqu'à 500 EC2 instances pour toutes les charges de travail JVM dans un même environnement Région AWS
Dernière version de l' CloudWatch agent
-
Agent SSM installé sur l'instance EC2
Note
AWS Systems Manager (agent SSM) est préinstallé sur certaines Amazon Machine Images (AMIs) fournies par des tiers AWS de confiance. Si l’agent n’est pas installé, vous pouvez l’installer manuellement à l’aide de la procédure correspondant à votre type de système d’exploitation.
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' CloudWatch agent, éliminant ainsi l'instrumentation manuelle.
-
Fournit un tableau de CloudWatch bord consolidé préconfiguré pour les métriques JVM. Le tableau de bord gérera automatiquement les métriques des nouvelles EC2 instances 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.
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 mesures collectées par l' CloudWatch agent sont facturées en tant que mesures personnalisées. Le nombre de métriques utilisées par cette solution dépend du nombre d' EC2 hôtes.
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é.
Opérations d'API demandées par l' CloudWatch agent pour publier les métriques. Avec la configuration par défaut de cette solution, l' CloudWatch agent appelle PutMetricDataune fois par minute pour chaque EC2 hôte. Cela signifie que l'PutMetricDataAPI sera appelée
30*24*60=43,200dans un délai de 30 jours par mois pour chaque EC2 hôte.
Pour plus d'informations sur CloudWatch les tarifs, consultez Amazon CloudWatch Pricing
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
-
Ouvrez le calculateur CloudWatch de prix Amazon
. -
Dans la section Choisir une région, sélectionnez la région dans laquelle vous souhaitez déployer la solution.
-
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. -
Dans la APIssection, pour Nombre de demandes d'API, entrez
43200 * number of EC2 instances configured for this solution.Par défaut, l' CloudWatch agent effectue une PutMetricDataopération par minute pour chaque EC2 hôte.
Dans la section Tableaux de bord et alarmes, pour Nombre de tableaux de bord, entrez
1.-
Vous pouvez voir vos coûts mensuels estimés en bas du calculateur de prix.
CloudWatch configuration de l'agent pour cette solution
L' CloudWatch agent est un logiciel qui s'exécute de manière continue et autonome sur vos serveurs et dans des 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 X-Ray.
Pour plus d'informations sur l' CloudWatch agent, consultezCollectez des métriques, des journaux et des traces à l'aide de l' CloudWatchagent.
La configuration de l’agent dans cette solution recueille les métriques fondatrices de la solution. L' CloudWatch agent peut être configuré pour collecter plus 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 CloudWatch l'agent, consultezMétriques collectées par l' CloudWatchagent.
Exposer les ports JMX pour l’application JVM
L' CloudWatch agent 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 votre sécurité policies/requirements exige que vous activiez JMX avec authentification par mot de passe ou SSL pour l'accès à distance, reportez-vous à la documentation JMX
-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 .jar fichier depuis la ligne de commande, cette commande peut ressembler à ce qui suit, où se pet-search.jar trouve le nom du fichier 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=falsepet-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
endpointde la configuration.ProcessGroupName: fournissez des noms significatifs pour la dimensionProcessGroupName. Ces noms doivent représenter le cluster, l'application ou le groupe de services pour les EC2 instances 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éfinissezProcessGroupName=order-processing.Pour les instances de l’application
inventory-management, définissezProcessGroupName=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 d' CloudWatch agent suivante sur EC2 les instances 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 : enregistrer le fichier de configuration d' CloudWatch agent recommandé dans le magasin de paramètres de Systems Manager.
Remplacez ProcessGroupName par le nom de votre groupe de processus. port-numberRemplacez-le 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 EC2 métriques affichées dans cette configuration (configuration affiché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 Mesures collectées par l' CloudWatchagent 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' CloudWatch agent, selon le cas d'utilisation. Nous vous recommandons d’utiliser Systems Manager pour cette solution. Il fournit une expérience de console et simplifie la gestion d'un parc de serveurs gérés au sein d'un seul AWS compte. Les instructions de cette section utilisent Systems Manager et sont destinées aux situations où l' CloudWatch agent n'est pas exécuté avec des configurations existantes. Vous pouvez vérifier si l' CloudWatch agent est en cours d'exécution en suivant les étapes décrites dansVérifiez que l' CloudWatch agent est en cours d'exécution.
Si vous exécutez déjà l' CloudWatch agent sur les EC2 hôtes sur lesquels 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' CloudWatch agent, vous pouvez fusionner la configuration avec la valeur de paramètre existante. Pour plus d'informations, consultez la section Gestion des fichiers de configuration des CloudWatch agents.
Note
L'utilisation de Systems Manager pour déployer les configurations d' CloudWatch agent suivantes remplacera ou remplacera toute configuration d' CloudWatch agent existante sur vos EC2 instances. 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 EC2 instances 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' CloudWatch agent sur une ou plusieurs EC2 instances à l'aide d'une CloudFormation pile.
Étape 4 : vérifiez que l’installation de l’agent est configurée correctement.
Étape 1 : Assurez-vous que les EC2 instances cibles disposent des autorisations IAM requises
Vous devez autoriser Systems Manager à installer et configurer l' CloudWatch agent. Vous devez également autoriser l' CloudWatch agent à publier des données télémétriques depuis votre EC2 instance vers. CloudWatch Assurez-vous que le rôle IAM associé à l'instance est associé aux politiques Amazon SSMManaged InstanceCore IAM CloudWatchAgentServerPolicyet Amazon.
-
Une fois le rôle créé, attachez-le à vos EC2 instances. Suivez les étapes décrites dans Lancer une instance avec un rôle IAM pour associer un rôle lors du lancement d'une nouvelle EC2 instance. Pour associer un rôle à une EC2 instance existante, suivez les étapes décrites dans Attacher un rôle IAM à une instance.
Étape 2 : enregistrer le fichier de configuration d' CloudWatch agent recommandé dans le magasin de paramètres de Systems Manager
Parameter Store simplifie l'installation de l' CloudWatch agent sur une EC2 instance 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.
Procédez comme suit pour enregistrer le fichier de configuration d' CloudWatch agent recommandé en tant que paramètre dans Parameter Store.
Pour créer le fichier de configuration de CloudWatch l'agent en tant que paramètre
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. Dans le volet de navigation, sélectionnez Gestion des applications, Magasin de paramètres.
Suivez ces étapes pour créer un nouveau paramètre pour la configuration.
-
Sélectionnez Create parameter (Créer un paramètre).
-
Dans le champ Nom, entrez un nom que vous utiliserez pour référencer le fichier de configuration de l' CloudWatch agent lors des étapes ultérieures. Par exemple,
AmazonCloudWatch-JVM-Configuration. -
(Facultatif) Dans la zone Description, saisissez une description pour le paramètre.
-
Pour Niveau de paramètre, choisissez Standard.
-
Pour Type, choisissez String (Chaîne).
Pour Type de données, choisissez texte.
-
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é.
-
Sélectionnez Create parameter (Créer un paramètre).
-
Étape 3 : Installation de l' CloudWatch agent et application de la configuration à l'aide d'un CloudFormation modèle
Vous pouvez l'utiliser AWS CloudFormation pour installer l'agent et le configurer de manière à utiliser la configuration d' CloudWatch agent que vous avez créée lors des étapes précédentes.
Pour installer et configurer l' CloudWatch agent pour cette solution
-
Ouvrez l'assistant de création CloudFormation rapide d'une pile à l'aide de ce lien : https://console.aws.amazon.com/cloudformation/accueil ? #/ 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
. -
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.
-
Pour Nom de la pile, entrez un nom pour identifier cette pile, par exemple
CWAgentInstallationStack. -
Dans la section Paramètres, indiquez les éléments suivants :
-
Pour CloudWatchAgentConfigSSM, entrez le nom du paramètre Systems Manager pour la configuration de l'agent que vous avez créée précédemment, par exemple
AmazonCloudWatch-JVM-Configuration. -
Pour sélectionner les instances cibles, vous avez deux options.
-
Pour InstanceIds, spécifiez une liste séparée par IDs des virgules d'instances IDs où vous souhaitez installer l' CloudWatch agent avec cette configuration. Vous pouvez répertorier une seule instance ou plusieurs instances.
-
Si vous déployez à grande échelle, vous pouvez spécifier le TagKeyet le correspondant TagValuepour cibler toutes les EC2 instances avec cette balise et cette valeur. Si vous spécifiez un TagKey, vous devez spécifier un correspondant TagValue. (Pour un groupe Auto Scaling, spécifiez
aws:autoscaling:groupNamele TagKeyet spécifiez le nom du groupe Auto Scaling TagValueà déployer sur toutes les instances du groupe Auto Scaling.)Si vous spécifiez à la fois les TagKeysparamètres InstanceIdset, InstanceIdsils seront prioritaires et les balises seront ignorées.
-
-
-
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 CloudFormation console. 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 CloudWatch agents exécutés dans les instances ciblées. Cela signifie que :
-
Si le paramètre Systems Manager est supprimé, l’agent s’arrêtera.
-
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.
-
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' CloudWatch agent est installé en suivant les étapes décrites dansVérifiez que l' CloudWatch agent est en cours d'exécution. Si l' CloudWatch agent n'est pas installé et n'est pas en cours d'exécution, assurez-vous que tout est correctement configuré.
-
Assurez-vous d'avoir attaché un rôle avec les autorisations appropriées pour l' EC2 instance, comme décrit dansÉtape 1 : Assurez-vous que les EC2 instances cibles disposent des autorisations IAM requises.
-
Assurez-vous d’avoir correctement configuré le fichier JSON pour le paramètre Systems Manager. Suivez les étapes de Résolution des problèmes liés à l'installation de CloudWatch l'agent avec CloudFormation.
Si tout est correctement configuré, vous devriez voir les métriques JVM publiées sur CloudWatch. Vous pouvez consulter la CloudWatch console pour vérifier qu'ils sont publiés.
Pour vérifier que les métriques JVM sont publiées sur CloudWatch
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. Choisissez Métriques, Toutes les métriques.
Assurez-vous d'avoir sélectionné la région dans laquelle vous avez déployé la solution, puis choisissez Espaces de noms personnalisés. CWAgent
Recherchez les métriques mentionnées dans Configuration de l’agent pour les hôtes JVM, par exemple
jvm.memory.heap.used. Si vous obtenez des résultats pour ces mesures, celles-ci 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 de EC2 statistiques. Pour consulter EC2 les métriques, vous devez utiliser le tableau de bord EC2 automatique pour voir les EC2 métriques vendues et utiliser le tableau de bord de la EC2 console pour voir les EC2 métriques collectées par l' CloudWatch agent. Pour plus d'informations sur les tableaux de bord automatiques pour les AWS services, consultezAffichage d’un tableau de bord CloudWatch pour un seul service AWS.
Pour créer le tableau de bord, vous pouvez utiliser les options suivantes :
Utilisez CloudWatch la console pour créer le tableau de bord.
Utilisez AWS CloudFormation la console pour déployer le tableau de bord.
Téléchargez l' AWS CloudFormation infrastructure sous forme de code et intégrez-la dans le cadre de votre automatisation d'intégration continue (CI).
En utilisant la CloudWatch console pour créer un tableau de bord, vous pouvez prévisualiser le tableau de bord avant de le créer et de le débiter.
Note
Le tableau de bord créé avec CloudFormation cette solution affiche les statistiques de la région dans laquelle la solution est déployée. Assurez-vous de créer la CloudFormation pile dans la région où vos métriques JVM sont publiées.
Si les métriques de l' CloudWatch agent sont publiées dans un espace de noms différent de celui CWAgent (par exemple, si vous avez fourni un espace de noms personnalisé), vous devrez modifier la CloudFormation configuration pour la CWAgent remplacer par l'espace de noms personnalisé que vous utilisez.
Pour créer le tableau de bord via CloudWatch la console
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. Cependant, vous pouvez personnaliser ces widgets en modifiant le CloudFormation modèle de tableau de bord et en appliquant le type de collecte de déchets approprié à la dimension de nom des métriques relatives à la collecte de déchets. 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.
-
Ouvrez la CloudWatch console Create Dashboard en utilisant ce lien : https://console.aws.amazon.com/cloudwatch/home ? #dashboards ? Modèle de tableau de bord = 2&referrer=os-catalog. JvmOnEc
-
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.
-
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. -
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
-
Ouvrez l'assistant de création CloudFormation rapide d'une pile à l'aide de ce lien : https://console.aws.amazon.com/cloudformation/accueil ? #/ 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
. -
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.
-
Pour Nom de la pile, entrez un nom pour identifier cette pile, par exemple
JVMDashboardStack. -
Dans la section Paramètres, spécifiez le nom du tableau de bord sous le DashboardNameparamètre.
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. -
Validez les capacités d’accès pour les transformateurs sous Capacités et transformateurs. Notez que CloudFormation cela n'ajoute aucune ressource IAM.
-
Examinez les paramètres, puis choisissez Créer la pile.
-
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 CloudWatch console en choisissant Tableaux de bord dans le volet de navigation gauche de la console et en recherchant 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 CloudFormation console. 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. Cependant, vous pouvez personnaliser ces widgets en modifiant le CloudFormation modèle de tableau de bord et en appliquant le type de collecte de déchets approprié à la dimension de nom des métriques relatives à la collecte de déchets. 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 en tas et hors segment utilisé JVMs dans l'ensemble 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 ceux qui ont JVMs un nombre anormalement élevé de fils ou de classes 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 ceux JVMs qui ont un nombre anormalement élevé de collections ou dont la durée de collecte est longue par rapport aux autres. Cela peut indiquer des problèmes de configuration ou des fuites de mémoire.