启用 CloudWatch Application Signals - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

启用 CloudWatch Application Signals

使用 CloudWatch Application Signals 自动检测 Amazon 上的应用程序,以便您可以根据业务目标跟踪应用程序性能。Application Signals 为您提供统一的、以应用程序为中心的视图,包括您的 Java 应用程序、其依赖项和边缘。有关更多信息,请参阅Application Signals

CloudWatch Application Signals 利用 CloudWatch 代理从您的自动检测应用程序接收指标和跟踪,可以选择应用规则来降低高基数,然后将处理后的遥测数据发布到 CloudWatch。您可以使用代理配置文件为 CloudWatch 代理提供专门针对 Application Signals 的自定义配置。首先,如果代理配置文件 logs 部分中的 metrics_collected 部分下存在 app_signals 部分,表明 CloudWatch 代理将从您的自动检测应用程序接收指标。同样,如果代理配置文件 traces 部分中的 traces_collected 部分下存在 app_signals 部分,则表明已启用 CloudWatch 代理接收来自您的自动检测应用程序的跟踪。此外,您可以选择传入自定义配置规则,以减少发布本部分中概述的高基数遥测数据。

  • 对于 Amazon EKS 集群,当您安装 Amazon CloudWatch Observability EKS 附加组件时,CloudWatch 代理默认处于启用状态,可以接收来自自动检测应用程序的指标和跟踪。如果您想选择传入自定义配置规则,则可以在创建自定义代理配置时将自定义代理配置传递给 Amazon EKS 附加组件,或者使用其他配置对其进行更新,如 (可选)其他配置 中所述。

  • 对于其他支持的平台(包括 Amazon EC2),您必须使用代理配置启动 CloudWatch 代理,该代理配置可通过指定 app_signals 部分和任何自定义配置规则(可选)来启用 Application Signals,如本部分后面所述。

以下是 CloudWatch 代理配置文件中与 CloudWatch Application Signals 相关的字段的概述。

  • logs

    • metrics_collected:此字段可包含指定代理将收集日志以启用使用案例的部分,例如 CloudWatch Application Signals 和针对 Amazon EKS 增强了可观测性的 Container Insights。

      注意

      以前,此部分还用于指定代理将收集采用嵌入式指标格式的日志。不再需要这些设置。

      • app_signals(可选)指定您要启用 CloudWatch Application Signals 以接收来自自动检测应用程序的指标,以促进 CloudWatch Application Signals。

        • rules(可选)一系列规则,用于有条件地选择指标和跟踪,并应用操作来处理高基数场景。每个规则可以包含以下字段:

          • rule_name(可选)规则的名称。

          • selectors(可选)一组指标和跟踪维度匹配程序。每个选择器必须提供以下字段:

            • dimension 如果 selectors 不为空,则为必填项。这指定了用作筛选条件的指标和跟踪的维度。

            • match 如果 selectors 不为空,则为必填项。用于匹配指定维度的值的通配符模式。

          • action(可选)要应用于与指定选择器匹配的指标和跟踪的操作。action 的值必须是以下关键字之一:

            • keep 指定仅将通过 selectors 匹配的指标和跟踪发送到 CloudWatch。

            • drop 指定删除与 selectors 匹配的指标和跟踪。

            • replace 指定替换与 selectors 匹配的指标和跟踪的维度。这些维度将根据 replacements 部分进行替换。

          • replacements如果 actionreplace,则是必需的。当 actionreplace 时,将应用于与指定 selectors 匹配的指标和跟踪的维度和值对的数组。每个替换必须提供以下字段:

            • target_dimension 如果 replacements 不为空,则为必填项。指定需要替换的维度。

            • value 如果 replacements 不为空,则为必填项。用于替换 target_dimension 原始值的值。

  • traces

    • traces_collected

      • app_sigals 可选。指定此项可让 CloudWatch 代理接收来自您的自动检测应用程序的跟踪,从而促进 CloudWatch Application Signals。

注意

尽管自定义 app_signals 规则是在 logs 部分中包含的 metrics_collected 部分下指定的,但也隐含地应用于 traces_collected 部分。同一组规则将应用于指标和跟踪。

当有多个具有不同操作的规则时,按以下顺序应用:keep,然后 drop,然后 replace

下面是一个应用自定义规则的完整 CloudWatch 代理配置文件示例。

{ "logs": { "metrics_collected": { "app_signals": { "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep" }, { "rule_name": "drop01", "selectors": [ { "dimension": "Operation", "match": "GET /api/customer/owners/*" } ], "action": "drop" }, { "rule_name": "replace01", "selectors": [ { "dimension": "Operation", "match": "PUT /api/customer/owners/*/pets/*" }, { "dimension": "RemoteOperation", "match": "PUT /owners" } ], "replacements": [ { "target_dimension": "Operation", "value": "PUT /api/customer/owners/{ownerId}/pets{petId}" } ], "action": "replace" } ] } } }, "traces": { "traces_collected": { "app_signals": {} } } }

对于前面的示例配置文件,按如下方式处理 rules

  1. 规则 keep01 可确保保留维度 Servicepet-clinic-frontend、维度 RemoteServicecustomers-service 的所有指标和跟踪。

  2. 对于在应用 keep01 后处理的指标和跟踪,drop01 规则可确保删除维度 OperationGET /api/customer/owners/* 的指标和跟踪。

  3. 对于在应用 drop01 后处理的指标和跟踪,replace01 规则可更新维度 OperationPUT /owners、维度 RemoteOperationPUT /api/customer/owners/*/pets/* 的指标和跟踪,其 Operation 维度现在被替换为 PUT /api/customer/owners/{ownerId}/pets{petId}