Carga de trabajo Java/JMX de muestra para clústeres de Amazon ECS - Amazon CloudWatch

Carga de trabajo Java/JMX de muestra para clústeres de Amazon ECS

JMX Exporter es un exportador oficial de Prometheus que puede extraer y exponer mBeans de JMX como métricas de Prometheus. Para obtener más información, consulte prometheus/jmx_exporter.

El agente de CloudWatch compatible con Prometheus raspa las métricas de Java/JMX Prometheus en función de la configuración de detección de servicios en el clúster de Amazon ECS. Puede configurar JMX Exporter para exponer las métricas en un puerto o ruta (metrics_path) diferente. Si cambia el puerto o la ruta, actualice la sección ecs_service_discovery predeterminada en la configuración del agente de CloudWatch.

Para recopilar métricas de una carga de trabajo de muestra de Prometheus para Amazon ECS, se debe ejecutar Información de contenedores en el clúster. Para obtener más información sobre la instalación de Información de contenedores, consulte Configuración de Información de contenedores en Amazon ECS.

Para instalar la carga de trabajo de ejemplo de Java/JMX para clústeres de Amazon ECS
  1. Siga los pasos descritos en estas secciones para crear las imágenes de Docker.

  2. Especifique las dos etiquetas docker siguientes en el archivo de definición de tareas de Amazon ECS. A continuación, se puede ejecutar la definición de tarea como un Servicio ECS de Amazon o como una tarea de Amazon ECS en el clúster.

    • Establezca ECS_PROMETHEUS_EXPORTER_PORT para apuntar al ContainerPort donde están expuestas las métricas de Prometheus.

    • Establece Java_EMF_Metrics en true. El agente de CloudWatch utiliza este indicador para generar el formato de métrica integrada en el evento de registro.

    A continuación, se muestra un ejemplo:

    { "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" }

La configuración predeterminada del agente de CloudWatch en la plantilla de AWS CloudFormation permite tanto la detección de servicios basados en etiquetas docker como la detección de servicios basada en ARN de definición de tareas. Para ver estas configuraciones predeterminadas, consulte la línea 65 del CloudWatch agent YAML configuration file (Archivo de configuración YAML del agente de CloudWatch). Los contenedores con etiquetas ECS_PROMETHEUS_EXPORTER_PORT se detectarán automáticamente en función del puerto de contenedor especificado para el raspado de Prometheus.

La configuración predeterminada del agente de CloudWatch también tiene la configuración metric_declaration para Java/JMX en la línea 112 del mismo archivo. Todas las etiquetas docker de los contenedores de destino se agregarán como etiquetas adicionales en las métricas de Prometheus y se enviarán a CloudWatch Logs. Para los contenedores Java/JMX con etiqueta docker Java_EMF_Metrics=“true”, se generará el formato de métrica integrada.