使用 X-Ray 调试 CloudWatch Synthetics Canary - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 X-Ray 调试 CloudWatch Synthetics Canary

CloudWatch Synthetics 是一项完全托管的服务,使您能够使用脚本化的 Canary 来监视终端节点和 API,这些 Canary 每天 24 小时运行,每分钟运行一次。

您可以自定义 Canary 脚本以检查以下各方面的更改:

  • 可用性

  • 延迟

  • 事务

  • 断开或损坏的链接

  • 分步完成任务

  • 页面加载错误

  • UI 资产的加载延迟

  • 复杂的向导流

  • 应用程序中的结账流程

Canary 遵循相同的路线,执行与您的客户相同的操作和行为,并持续验证客户体验。

要了解有关设置 Synthetics 测试的详细信息,请参阅使用 Synthetics 创建和管理 Canary


            X-Ray 服务地图中的 Canary 节点示例。

以下示例显示 Synthetics Canary 引起的调试问题的常见使用案例。每个示例都演示了使用服务地图或 X-Ray Analytics 控制台进行调试的关键策略。

有关如何阅读服务地图以及与服务地图交互的更多信息,请参阅查看服务地图

有关如何阅读 X-Ray Analytics 控制台以及与其交互的更多信息,请参阅与 AWS X-Ray Analytics 控制台交互

在服务地图中查看带有增强错误报告的 Canary

要查看 X-Ray 服务地图中哪些 Canary 的错误、故障、限制速率或缓慢响应时间有所增加,您可以使用 Client::Synthetic 筛选器突出显示 Synthetics Canary 客户端节点。单击 Synthetics Canary 节点将显示整个请求的响应时间分布。


                带有边沿详细信息的 X-Ray 服务地图中的 Canary 节点示例。

对各个跟踪使用跟踪映射以详细查看每个请求

要确定哪些服务会导致最多的延迟或正在导致错误,请通过在服务地图中选择跟踪来调用跟踪映射。单个跟踪映射显示单个请求的端到端路径。使用此方法可了解调用的服务,并直观显示上游和下游服务。


                X-Ray 跟踪映射中的 Canary 节点示例。

确定上游和下游服务持续出现故障的根本原因

在 Synthetics Canary 中收到 CloudWatch 故障警报后,请对 X-Ray 中的跟踪数据进行统计建模,以确定 X-Ray Analytics 控制台中问题的可能根本原因。在 Analytics 控制台中,Response Time Root Cause (响应时间根本原因) 表显示记录的实体路径。X-Ray 确定跟踪中的哪个路径是响应时间的最可能原因。格式指示所遇到的实体的层次结构,结尾是响应时间根本原因。

以下示例显示,由于 Amazon DynamoDB 表中的吞吐量容量异常,对在 API 网关上运行的 API“XXX”进行的 Synthetics 测试失败。


                X-Ray 服务地图中的 Canary 节点示例。

                Canary 节点根本原因示例。

                表示 Canary 节点的示例注释过滤器。

确定性能瓶颈和趋势

可以使用来自 Synthetics Canary 的持续流量在一段时间内填充跟踪映射,从而查看终端节点性能随时间的趋势。


                表示 Canary 节点的示例注释过滤器。

比较更改前后的延迟和错误或故障率

精确确定发生更改的时间,以便将该更改与您的 Canary 捕获的问题增加相关联。使用 X-Ray Analytics 控制台将前后时间范围定义为不同的跟踪集,从而在响应时间分布中创建视觉差异。


                表示 Canary 节点的示例注释过滤器。

确定所有 API 和 URL 所需的 Canary 覆盖范围

使用 X-Ray Analytics 与用户比较 Canary 的体验。下面的 UI 显示 Canary 的蓝色趋势线和用户的绿色线。您还可以确定三个 URL 中的两个没有 Canary 测试。


                表示 Canary 节点的示例注释过滤器。

使用专注于 Synthetics 测试的组

要专注于一组特定的工作流程,例如在 AWS Elastic Beanstalk 上运行的应用程序“www”的 Synthetics 测试。您可以使用筛选表达式创建 X-Ray 组。

例 组筛选条件表达式

"edge(id(name: "www", type: "client::Synthetics"), id(name: "www", type: "AWS::ElasticBeanstalk::Environment"))"

                Elastic Beanstalk www 的示例节点。