Amazon 群集的範例Java/ JMX 工作負載 ECS - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon 群集的範例Java/ JMX 工作負載 ECS

JMX出口商是一個官方的 Prometheus 出口商,可以刮和暴露JMX mBeans 為 Prometheus 指標。如需詳細資訊,請參閱 prometheus/jmx_exporter

支援 Prometheus 的 CloudWatch 代理程式會根據 Amazon 叢集中的服務探索組態抓取 Java/JMXPrometheus 指標。ECS您可以設定JMX匯出程式,在不同的連接埠或 metrics_path 上公開量度。如果您確實變更了通訊埠或路徑,請更新 CloudWatch代理程式組態中的預設ecs_service_discovery區段。

若要從 Amazon 的 Prometheus 工作負載範例中收集指標ECS,您必須在叢集中執行容器洞見。如需安裝 Container Insights 的相關資訊,請參閱 在 Amazon 上設置容器洞察 ECS

若要為 Amazon 集群安裝Java/ JMX 範例工作負載 ECS
  1. 請依照這些章節中的步驟建立 Docker 影像。

  2. 在 Amazon ECS 任務定義檔案中指定下列兩個 docker 標籤。然後,您可以在叢集中以 Amazon ECS 服務或 Amazon ECS 任務的形式執行任務定義。

    • 設定ECS_PROMETHEUS_EXPORTER_PORT為指向 Prometheus 度量公開的containerPort位置。

    • Java_EMF_Metrics 設定為 true。 CloudWatch 代理程式會使用此旗標,在記錄事件中產生內嵌的度量格式。

    以下是範例:

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

AWS CloudFormation 範本中 CloudWatch 代理程式的預設設定可同時啟用 docker 標籤式服務探索和以工作定義ARN為基礎的服務探索。如果要檢視這些預設設定,請參閱 CloudWatch 代理程式YAML組態檔第 65 行。將根據 Prometheus 湊集的指定容器連接埠自動探索具有 ECS_PROMETHEUS_EXPORTER_PORT 標籤的容器。

CloudWatch 代理程式的預設設定也會在相同檔案的第 112 JMX 行具有 Java/ 的metric_declaration設定。目標容器的所有 docker 標籤都會新增為 Prometheus 指標中的其他標籤,並傳送至記錄檔。 CloudWatch 對於具有 docker 標籤的 Java/ JMX 容器Java_EMF_Metrics=“true”,將生成嵌入的指標格式。