本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
App Mesh 可观测性故障排除
重要
终止支持通知:2026 年 9 月 30 日, Amazon 将停止对的支持。 Amazon App Mesh 2026 年 9 月 30 日之后,您将无法再访问 Amazon App Mesh 控制台或 Amazon App Mesh 资源。有关更多信息,请访问这篇博客文章从 Amazon App Mesh 亚马逊ECS服务连接迁移
本主题详细介绍了在 App Mesh 可观测性方面可能遇到的常见问题。
看不见 Amazon X-Ray 我的应用程序的痕迹
症状
您在 App Mesh 中的应用程序未在 X-Ray 控制台或 API 中显示 X-Ray 跟踪信息。
解决方案
要 X-Ray 在 App Mesh 中使用,必须正确配置组件以启用应用程序、边车容器和服务之间的通信。 X-Ray 采取以下步骤确认 X-Ray 设置正确:
-
确保 App Mesh 虚拟节点侦听器协议未设置为
TCP。 -
确保与您的应用程序一起部署的 X-Ray 容器公开 UDP 端口
2000并以用户身份运行。1337有关更多信息,请参阅上的Amazon ECS X-Ray 示例 GitHub。 -
确保 Envoy 容器启用了跟踪。如果您使用的是 App Mesh Envoy 镜像,则可以通过将
ENABLE_ENVOY_XRAY_TRACING环境变量设置为值1并将XRAY_DAEMON_PORT环境变量设置为来启用 X-Ray2000。 -
如果您已使用某个特定语言的 SDK 对应用程序代码进行了插 X-Ray 入,请按照相应语言的指南确保其配置正确。
-
如果之前的所有项目配置正确,请查看 X-Ray 容器日志中是否存在错误,并按照故障排除中的指导进行操作 Amazon X-Ray。有关在 App Mesh 中 X-Ray 集成的更详细说明,请参阅 X-Ray 与 App Mesh 集成
。
如果您的问题仍未解决,请考虑提出GitHub 问题
无法在亚马逊指标中查看我的应用程序的 Envoy CloudWatch 指标
症状
你在 App Mesh 中的应用程序不会将 Envoy 代理生成的指标发送到 CloudWatch指标。
解决方案
在 App Mesh 中使用 CloudWatch 指标时,必须正确配置多个组件以启用 Envoy 代理、代 CloudWatch 理 sidecar 和 CloudWatch 指标服务之间的通信。采取以下步骤确认 Envoy 代理的 CloudWatch 指标已正确设置:
-
确保您使用的是 App Mesh 的 CloudWatch 代理镜像。有关更多信息,请参阅 App Mesh CloudWatch 代理
开启 GitHub。 -
按照平台特定的使用说明,确保已为 App Mesh 适当配置了 CloudWatch 代理。有关更多信息,请参阅 App Mesh CloudWatch 代理
开启 GitHub。 -
如果前面的所有项目配置正确,请查看 CloudWatch 代理容器日志中是否存在错误,并按照 CloudWatch 代理疑难解答中提供的指导进行操作。
如果您的问题仍未解决,请考虑提出GitHub 问题
无法为配置自定义采样规则 Amazon X-Ray 跟踪
症状
您的应用程序正在使用 X-Ray 跟踪,但您无法为跟踪配置采样规则。
解决方案
由于 App Mesh Envoy 目前不支持动态 X-Ray 采样配置,因此可以使用以下解决方法。
如果您的 Envoy 版本为 1.19.1 或更高版本,您可以选择以下选项。
-
要仅设置采样率,请使用 Envoy 容器上的
XRAY_SAMPLING_RATE环境变量。该值应指定为介于0和之间的小数1.00(100%)。有关更多信息,请参阅 Amazon X-Ray 变量。 -
要为 X-Ray 跟踪器配置本地化自定义采样规则,请使用
XRAY_SAMPLING_RULE_MANIFEST环境变量指定 Envoy 容器文件系统中的文件路径。有关更多信息,请参阅《Amazon X-Ray 开发人员指南》中的采样规则。
如果您的 Envoy 版本早于 1.19.1,请执行以下操作。
-
使用
ENVOY_TRACING_CFG_FILE环境变量来更改采样率。有关更多信息,请参阅 Envoy 配置变量。指定自定义跟踪配置并定义本地采样规则。有关更多信息,请参阅 Envoy X-Ray 配置。 -
ENVOY_TRACING_CFG_FILE环境变量的自定义跟踪配置示例:tracing: http: name: envoy.tracers.xray typedConfig: "@type": type.googleapis.com/envoy.config.trace.v3.XRayConfig segmentName: foo/bar segmentFields: origin: AWS::AppMesh::Proxy aws: app_mesh: mesh_name: foo virtual_node_name: bar daemonEndpoint: protocol: UDP address: 127.0.0.1 portValue: 2000 samplingRuleManifest: filename: /tmp/sampling-rules.json -
有关
samplingRuleManifest属性中抽样规则清单的配置的详细信息,请参阅配置 Go X-Ray 开发工具包。
如果您的问题仍未解决,请考虑提出GitHub 问题