本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
App Mesh 可观测性故障排除
本主题详细介绍了您在 App Mesh 可观测性方面可能遇到的常见问题。
看不到我的应用程序的 AWS X-Ray 痕迹
症状
您在 App Mesh 中的应用程序未在 X-Ray 控制台或 API 中显示 X-Ray 跟踪信息。
解决方案
要在 App Mesh 中使用 X-Ray,必须正确配置组件,以实现应用程序、sidecar 容器和 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
环境变量设置为2000
来启用 X-Ray。 -
如果您使用某个特定语言的 SDK 在应用程序代码中对 X-Ray 进行了检测,请按照您的语言指南确保其配置正确。
-
如果前面的所有项目都配置正确,请查看 X-Ray 容器日志中是否存在错误,并按照疑难解答中的指导进行操作 AWS X-Ray。有关在 App Mesh 中集成 X-Ray 的更详细说明,请参阅将 X-Ray 与 App Mesh 集成
。
如果您的问题仍未解决,请考虑GitHub 提出问题
无法在 Amazon 指标中查看我的应用程序的 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 提出问题
无法为 AWS X-Ray 跟踪配置自定义采样规则
症状
您的应用程序正在使用 X-Ray 跟踪,但您无法为跟踪配置采样规则。
解决方案
由于 App Mesh Envoy 目前不支持动态 X-Ray 采样配置,因此可以使用以下解决方法。
如果您的 Envoy 版本为 1.19.1
或更高版本,您可以选择以下选项。
-
要仅设置采样率,请使用 Envoy 容器上的
XRAY_SAMPLING_RATE
环境变量。该值应指定为介于0
和之间的小数1.00
(100%)。有关更多信息,请参阅 AWS X-Ray 变量。 -
要为 X-Ray tracer 配置本地化的自定义采样规则,请使用
XRAY_SAMPLING_RULE_MANIFEST
环境变量指定 Envoy 容器文件系统中的文件路径。有关更多信息,请参阅《AWS X-Ray 开发人员指南》中的采样规则。
如果您的 Envoy 版本早于 1.19.1
,请执行以下操作。
-
使用
ENVOY_TRACING_CFG_FILE
环境变量来更改采样率。有关更多信息,请参阅 Envoy 配置变量。指定自定义跟踪配置并定义本地采样规则。有关更多信息,请参阅 Envoy Cay 配置。 -
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
属性中采样规则清单配置的详细信息,请参阅配置 X-Ray SDK for Go。
如果您的问题仍未解决,请考虑GitHub 提出问题