本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
跟踪
重要
为全面实现跟踪,您需要更新应用程序。
要查看所选服务中的所有可用数据,您必须使用适用的库来检测您的应用程序。
使用 AWS X-Ray 监控 App Mesh
AWS X-Ray 是一项服务,提供用于查看、筛选和获取您应用程序所服务的请求中收集的数据的工具,并获取数据洞察力。这些见解可帮助您发现问题和机会,从而优化您的应用程序。您可以查看有关请求和响应的详细信息,以及您的应用程序对其他 AWS 服务的下游调用。
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 的演练
了解与 AWS X-Ray 相关的更多信息
使用 App Mesh AWS 对 X-Ray 进行故障排除
带 Amazon EKS 的 App Mesh 的 Jaeger 版
Jaeger 是一个开源的、端到端的分布式跟踪系统。它可用于分析网络和进行监控。Jaeger 还可以帮助您排查复杂的云原生应用程序。
要在应用程序代码中实现 Jaeger,您可以在 Jaeger 文档跟踪库中找到具体适用于您的语言的指南。
使用 Helm 安装 Jaeger
-
将 EKS 存储库添加到 Helm:
helm repo add eks https://aws.github.io/eks-charts
-
安装 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