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

使用您的服务在 Amazon EKS 集群上启用 Application Signals

Application Signals 目前为预览版。如果您对此功能有任何反馈,可以通过 app-signals-feedback@amazon.com 联系我们。

要在现有 Amazon EKS 集群上的 Java 应用程序上启用 CloudWatch Application Signals,请按照本节中的说明进行操作。

目前 Application Signals 仅监控 Java 应用程序。

重要

如果您已经在打算为 Application Signals 启用的应用程序中使用 OpenTelemetry,请在启用 Application Signals 之前参阅 OpenTelemetry 兼容性注意事项

为现有 Amazon EKS 集群上的应用程序启用 Application Signals
  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择服务

  3. 如果您尚未在此账户中启用 Application Signals,则必须向 Application Signals 授予发现您的服务所需的权限。为此,请执行以下操作:您的账户只需执行一次该操作。

    1. 选择开始发现您的服务

    2. 选中该复选框并选择开始发现服务

      首次在您的账户中完成此步骤会创建 AWSServiceRoleForCloudWatchApplicationSignals 服务相关角色。此角色授予 Application Signals 以下权限:

      • xray:GetServiceGraph

      • logs:StartQuery

      • logs:GetQueryResults

      • cloudwatch:GetMetricData

      • cloudwatch:ListMetrics

      • tag:GetResources

      有关该角色的更多信息,请参阅 CloudWatch Application Signals 的服务相关角色权限

  4. 选择启用 Application Signals

  5. 指定平台中,选择 EKS

  6. 选择 EKS 集群中,选择要在其中启用 Application Signals 的集群。

  7. 如果此集群尚未启用 Amazon CloudWatch Observability EKS 附加组件,则系统会提示您将其启用。在这种情况下,请执行以下操作:

    1. 选择添加 CloudWatch Observability EKS 附加组件。Amazon EKS 控制台出现。

    2. 选中 Amazon CloudWatch Observability 对应的复选框,然后选择下一步

      CloudWatch Observability EKS 附加组件启用 Application Signals 和 CloudWatch Container Insights,从而增强 Amazon EKS 的可观测性。有关安装 Container Insights 的更多信息,请参阅 使用 Container Insights

    3. 选择要安装的最新版本的附加组件。

    4. 选择要用于附加组件的 IAM 角色。如果您选择从节点继承,请将正确的权限附加到您的 Worker 节点使用的 IAM 角色。将 my-worker-node-role 替换为您的 Kubernetes Worker 节点使用的 IAM 角色。

      aws iam attach-role-policy \ --role-name my-worker-node-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --policy-arn arn:aws:iam::aws:policy/AWSXRayWriteOnlyAccess
    5. 如果您想要创建服务角色以使用附加组件,请参阅 使用 Amazon CloudWatch Observability EKS 附加组件安装 CloudWatch 代理

    6. 选择下一步,确认屏幕上的信息,然后选择创建

    7. 在下一个屏幕中,选择启用 CloudWatch Application Signals 以返回 CloudWatch 控制台并完成该过程。

  8. 在 CloudWatch 控制台中,配置应用程序指标和跟踪采样部分说明了您必须向集群中的清单 YAML 添加注释。添加此注释会自动检测应用程序以向 Application Signals 发送指标、跟踪和日志。

    您有两种注释选项:

    • 注释工作负载会自动检测集群中的单个工作负载。

    • 注释命名空间会自动检测所选命名空间中部署的所有工作负载。

    选择其中一个选项,然后按照相应的步骤操作:

      1. 选择注释工作负载

      2. 将代码行 annotations: instrumentation.opentelemetry.io/inject-java: "true" 粘贴到工作负载清单的 PodTemplate 部分。

      3. 在您的终端中,输入 kubectl apply -f your_deployment_yaml 以应用更改。

      1. 选择注释命名空间

      2. 将代码行 annotations: instrumentation.opentelemetry.io/inject-java: "true" 粘贴到命名空间清单的元数据部分。

      3. 在您的终端中,输入 kubectl apply -f your_namespace_yaml 以应用更改。

      4. 在您的终端中,输入命令以重启命名空间中的所有容器组(pod)。重启部署工作负载的命令示例是 kubectl rollout restart deployment -n namespace_name

  9. 选择完成后查看服务。这将带您进入 Application Signals 服务视图,您可以在其中查看 Application Signals 正在收集的数据。可能需要几分钟才会显示数据。

    要在另一个 Amazon EKS 集群中启用 Application Signals,请从服务屏幕中选择启用 Application Signals

    有关服务视图的更多信息,请参阅 使用 Application Signals 监控应用程序的运行状况