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

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

跟踪

重要

为全面实现跟踪,您需要更新应用程序。

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

使用 Amazon X-Ray 监控 App Mesh

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

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

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

通过 App Mesh 启用X-Ray 跟踪功能

  • 视服务类型而定:
    • 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 示例

亚马逊 ECS 的 Envoy 容器定义

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

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

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 进行故障排除

带 Amazon EKS 的 App Mesh 的 Jaeger 版

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 文档中找到具体适用于您的应用程序语言的指南。