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

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

跟踪

重要

终止支持通知:2026 年 9 月 30 日, Amazon 将停止对的支持。 Amazon App Mesh 2026 年 9 月 30 日之后,您将无法再访问 Amazon App Mesh 控制台或 Amazon App Mesh 资源。如需了解更多信息,请访问此博客文章从迁移 Amazon App Mesh 到 Amazon S ECS ervice Connect

重要

要完全实现跟踪,你需要更新应用程序。

要查看所选服务中的所有可用数据,您必须使用适用的库来检测您的应用程序。

使用 Amazon X-Ray 监控 App Mesh

重要

终止支持通知:2026 年 9 月 30 日, Amazon 将停止对的支持。 Amazon App Mesh 2026 年 9 月 30 日之后,您将无法再访问 Amazon App Mesh 控制台或 Amazon App Mesh 资源。如需了解更多信息,请访问此博客文章从迁移 Amazon App Mesh 到 Amazon S ECS ervice Connect

Amazon X-Ray 是一项服务,它提供的工具可让您查看、筛选并深入了解从应用程序所处理的请求中收集的数据。这些见解可帮助您发现问题和机会,从而优化您的应用程序。您可以查看有关请求和响应的详细信息,以及您的应用程序对其他 Amazon 服务的下游调用。

X-Ray 与 App Mesh 集成以管理您的 Envoy 微服务。来自 Envoy 的跟踪数据将发送到您的容器中运行的 X-Ray 进程守护程序。

使用特定于您的语言的SDK指南,在您的应用程序代码中实现 X-Ray。

通过 App Mesh 启用 X 射线追踪

  • 视服务类型而定:
    • ECS- 在 Envoy 代理容器定义中,将ENABLE_ENVOY_XRAY_TRACING环境变量设置为1,将XRAY_DAEMON_PORT环境变量设置为2000

    • EKS- 在 App Mesh 控制器配置中,包括--set tracing.enabled=true--set tracing.provider=x-ray

  • 在 X-Ray 容器中,公开端口 2000 并以用户身份运行 1337

X-Ray 示例

亚马逊的 Envoy 容器定义 ECS

{ "name": "envoy", "image": "840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod", "essential": true, "environment": [ { "name": "APPMESH_VIRTUAL_NODE_NAME", "value": "mesh/myMesh/virtualNode/myNode" }, { "name": "ENABLE_ENVOY_XRAY_TRACING", "value": "1" } ], "healthCheck": { "command": [ "CMD-SHELL", "curl -s http://localhost:9901/server_info | cut -d' ' -f3 | grep -q live" ], "startPeriod": 10, "interval": 5, "timeout": 2, "retries": 3 }

更新适用于亚马逊的 App Mesh 控制器 EKS

helm upgrade -i appmesh-controller eks/appmesh-controller \ --namespace appmesh-system \ --set region=${AWS_REGION} \ --set serviceAccount.create=false \ --set serviceAccount.name=appmesh-controller \ --set tracing.enabled=true \ --set tracing.provider=x-ray

使用 X-Ray 的演练

要了解有关 Amazon X-Ray 的更多信息

使用 App Mesh Amazon 对 X-Ray 进行故障排除

Jaeger for Amazon 的 App Mesh EKS

Jaeger 是一个开源的、端到端的分布式跟踪系统。它可用于分析网络和进行监控。Jaeger 还可以帮助您对复杂的云原生应用程序进行故障排除。

要在应用程序代码中实现 Jaeger,您可以在 Jaeger 文档跟踪库中找到具体适用于您的语言的指南。

使用 Helm 安装 Jaeger

  1. 将EKS存储库添加到 Helm:

    helm repo add eks https://aws.github.io/eks-charts
  2. 安装 App Mesh Jaeger

    helm upgrade -i appmesh-jaeger eks/appmesh-jaeger \ --namespace appmesh-system

Jaeger 示例

以下是为 Jaeger 创建永久存储 PersistentVolumeClaim 的示例。

helm upgrade -i appmesh-controller eks/appmesh-controller \ --namespace appmesh-system \ --set tracing.enabled=true \ --set tracing.provider=jaeger \ --set tracing.address=appmesh-jaeger.appmesh-system \ --set tracing.port=9411

使用 Jaeger 的演练

要了解有关 Jaeger 的更多信息

用于追踪的 Datadog

Datadog 既可以用于跟踪,也可以用于指标。有关更多信息和安装说明,请在 Datadog 文档中找到具体适用于您的应用程序语言的指南。