亚马逊云服务器集群的 Java /JMX 工作负载示例 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊云服务器集群的 Java /JMX 工作负载示例

JMX Exporter 是 Prometheus 的官方导出程序,可以将 JMX MBeans 作为 Prometheus 指标进行抓取和公开。有关详细信息,请参阅 prometheus/jmx_exporter

具有 Prometheus 支持的 CloudWatch 代理根据 Amazon ECS 集群中的服务发现配置,抓取 Java/JMX Prometheus 指标。您可以将 JMX Exporter 配置为在不同端口或 metrics_path 上公开指标。如果您更改了端口或路径,请更新默认值ecs_service_discovery部 CloudWatch。

要从 Amazon ECS Prometheus 工作负载示例中收集指标,您必须在集群中运行容器见解。有关安装 Container Insights 的信息,请参阅。在亚马逊云服务器上设置容器见解

安装亚马逊云服务器群集的 Java/JMX 示例工作负载

  1. 按照这些部分中的步骤创建 Docker 映像。

  2. 在 Amazon 云服务器任务定义文件中指定以下两个码头标签。然后,您可以在集群中将任务定义作为 Amazon 云服务或 Amazon 云服务器任务运行。

    • SetECS_PROMETHEUS_EXPORTER_PORT指向公开 Prometheus 指标的容器端口。

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

CloudWatch 代理的默认设置在Amazon CloudFormation模板启用基于码头标签的服务发现和基于 ARN 的任务定义服务发现。要查看这些默认设置,请参阅CloudWatch 代理 YAML 配置文件。具有ECS_PROMETHEUS_EXPORTER_PORT标签将根据指定的 Prometheus 抓取容器端口自动发现。

CloudWatch 代理的默认设置也具有metric_declaration设置在同一文件的第 112 行。目标容器的所有码头标签将作为附加标签添加到 Prometheus 指标中,并发送到 CloudWatch Logs。对于带有docker 标签的 Java/JMX 容器Java_EMF_Metrics=“true”,则将生成嵌入式量度格式。