Exemplo de workload do Java/JMX para clusters do Amazon ECS
O JMX Exporter é um exportador oficial do Prometheus que pode extrair conteúdo e expor mBeans da JMX como métricas do Prometheus. Para obter mais informações, consulte prometheus/jmx_exporter
O atendente do CloudWatch com suporte ao Prometheus extrai as métricas do Java/JMX Prometheus com base na configuração de detecção de serviço no cluster do Amazon ECS. Você pode configurar o JMX Exporter de modo a expor as métricas em uma porta ou metrics_path diferente. Se alterar a porta ou o caminho, atualize a seção ecs_service_discovery
padrão na configuração do atendente do CloudWatch.
Para coletar métricas de uma amostra de workload do Prometheus para o Amazon ECS, é necessário estar executando o Container Insights no cluster. Para obter informações sobre como instalar o Container Insights, consulte Configurar o Container Insights no Amazon ECS.
Para instalar o exemplo de workload do Java/JMX para clusters do Amazon ECS
-
Siga as etapas destas seções para criar suas imagens do Docker.
-
Especifique os dois rótulos do docker a seguir no arquivo de definição de tarefa do Amazon ECS. Em seguida, é possível executar a definição da tarefa como um serviço do Amazon ECS ou uma tarefa do Amazon ECS no cluster.
-
Defina
ECS_PROMETHEUS_EXPORTER_PORT
para apontar para a containerPort onde as métricas do Prometheus estão expostas. -
Defina
Java_EMF_Metrics
comotrue
. O atendente do CloudWatch usa esse sinalizador para gerar o formato de métrica incorporado no evento de log.
Veja um exemplo a seguir:
{ "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" }
-
A configuração padrão do atendente do CloudWatch no modelo AWS CloudFormation permite a detecção de serviços baseada em rótulos do docker e a detecção de serviços baseada no ARN da definição de tarefa. Para exibir essas configurações padrão, consulte a linha 65 do arquivo de configurações YAML do atendente do CloudWatchECS_PROMETHEUS_EXPORTER_PORT
serão descobertos automaticamente com base na porta de contêiner especificada para extração do Prometheus.
A configuração padrão do atendente do CloudWatch também tem a configuração metric_declaration
para Java/JMX na linha 112 do mesmo arquivo. Todos os rótulos do docker dos contêineres de destino serão acrescentados como rótulos adicionais nas métricas do Prometheus e enviados ao CloudWatch Logs. Para os contêineres Java/JMX com rótulo do docker Java_EMF_Metrics=“true”
, será gerado o formato de métrica incorporado.