Exemple de Java/JMX charge de travail pour les clusters Amazon ECS - Amazon CloudWatch

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.

Exemple de Java/JMX charge de travail pour les clusters Amazon ECS

JMX Exporter est un exportateur Prometheus officiel qui peut récupérer et exposer des mBeans JMX en tant que métriques Prometheus. Pour plus d'informations, consultez prometheus/jmx_exporter.

L' CloudWatch agent prenant en charge Prometheus extrait les métriques Prometheus en fonction de la Java/JMX configuration de découverte de services dans le cluster Amazon ECS. Vous pouvez configurer JMX Exporter pour qu'il expose les métriques sur un autre port ou chemin d'accès. Si vous modifiez le port ou le chemin, mettez à jour la ecs_service_discovery section par défaut dans la configuration de l' CloudWatchagent.

Pour collecter des métriques à partir d'un exemple d'application Prometheus pour Amazon ECS, vous devez exécuter Container Insights dans le cluster. Pour plus d'informations sur l'installation de Container Insights, consultez Configuration de Container Insights sur Amazon ECS.

Pour installer l' Java/JMX exemple de charge de travail pour les clusters Amazon ECS
  1. Suivez les étapes décrites dans ces sections pour créer vos images Docker.

  2. Spécifiez les deux étiquettes docker suivantes dans le fichier de définition de tâche Amazon ECS. Vous pouvez ensuite exécuter la définition de tâche en tant que Amazon ECS service ou tâche Amazon ECS dans le cluster.

    • Définissez ECS_PROMETHEUS_EXPORTER_PORT pour pointer vers le ContainerPort où les métriques Prometheus sont exposées.

    • Définissez Java_EMF_Metrics sur true. L' CloudWatch agent utilise cet indicateur pour générer le format de métrique intégré dans le journal des événements.

    Voici un exemple :

    { "family": "workload-java-ec2-bridge", "taskRoleArn": "{{task-role-arn}}", "executionRoleArn": "{{execution-role-arn}}", "networkMode": "bridge", "containerDefinitions": [ { "name": "tomcat-prometheus-workload-java-ec2-bridge-dynamic-port", "image": "your_docker_image_tag_for_tomcat_with_prometheus_metrics", "portMappings": [ { "hostPort": 0, "protocol": "tcp", "containerPort": 9404 } ], "dockerLabels": { "ECS_PROMETHEUS_EXPORTER_PORT": "9404", "Java_EMF_Metrics": "true" } } ], "requiresCompatibilities": [ "EC2" ], "cpu": "256", "memory": "512" }

Le paramètre par défaut de l' CloudWatch agent dans le AWS CloudFormation modèle permet à la fois la découverte de services basée sur les étiquettes docker et la découverte de services basée sur l'ARN par définition de tâches. Pour consulter ces paramètres par défaut, reportez-vous à la ligne 65 du fichier de configuration YAML de l' CloudWatch agent. Les conteneurs avec l'étiquette ECS_PROMETHEUS_EXPORTER_PORT seront automatiquement découverts en fonction du port de conteneur spécifié pour la récupération Prometheus.

Le paramètre par défaut de l' CloudWatch agent contient également le metric_declaration paramètre correspondant Java/JMX à la ligne 112 du même fichier. Toutes les étiquettes docker des conteneurs cibles seront ajoutées en tant qu'étiquettes supplémentaires dans les métriques Prometheus et envoyées à Logs. CloudWatch Pour les Java/JMX conteneurs dotés d'une étiquette dockerJava_EMF_Metrics=“true”, le format métrique intégré sera généré.