

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

# 使用 X-Ra CloudWatch y 调试合成金丝雀
CloudWatch Synthetics

CloudWatch Synthetics 是一项完全托管的服务，可让您监控端点并 APIs 使用每天 24 小时、每分钟运行一次的脚本化金丝雀。

您可以自定义 Canary 脚本以检查以下内容中的更改：
+ 可用性
+ 延迟
+ 事务
+ 中断或失效的链接
+ Step-by-step 任务完成
+ 页面加载错误
+ UI 资产的加载延迟
+ 复杂的向导流
+ 应用程序中的结算流程

Canary 遵循与客户相同的路线执行相同的操作和行为，并不断验证客户体验。

要了解有关设置 Synthetics 测试的详细信息，请参阅[使用 Synthetics 创建和管理 Canary](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)。

![\[X-Ray 跟踪映射中的 Canary 节点示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-show-canary-active.png)


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

有关如何解读跟踪地图并与之进行互动的更多信息，请参阅[查看服务地图](https://docs.amazonaws.cn/xray/latest/devguide/xray-console.html#xray-console-servicemap)。

有关如何阅读 X-Ray Analytics 控制台并与之交互的更多信息，请参阅[与 An Amazon X-Ray alytics 控制台交互](https://docs.amazonaws.cn/xray/latest/devguide/xray-console-analytics.html)。

**Topics**
+ [

## 在跟踪地图中查看带有增强错误报告的 Canary
](#xray-services-cloudwatch-synthetics-workflows-which-canary)
+ [

## 对各个跟踪使用跟踪详情地图以详细查看每个请求
](#xray-services-cloudwatch-synthetics-workflows-trace-map)
+ [

## 确定上游和下游服务持续出现故障的根本原因
](#xray-services-cloudwatch-synthetics-workflows-root-cause)
+ [

## 确定性能瓶颈和趋势
](#xray-services-cloudwatch-synthetics-workflows-bottlenecks)
+ [

## 比较更改前后的延迟和错误或故障率
](#xray-services-cloudwatch-synthetics-workflows-latency)
+ [

## 确定所有人所需的金丝雀覆盖范围 APIs 以及 URLs
](#xray-services-cloudwatch-synthetics-workflows-impact)
+ [

## 使用组专注于 Synthetics 测试
](#xray-services-cloudwatch-synthetics-groups)

## 在跟踪地图中查看带有增强错误报告的 Canary
查看带有增强错误报告的 Canary

 要查看 X-Ray 跟踪地图中哪些 Canary 的错误、故障、限制速率或缓慢响应时间有所增加，您可以使用 `Client::Synthetic` [筛选器](xray-console-filters.md)突出显示 Synthetics Canary 客户端节点。单击节点将显示整个请求的响应时间分布。单击两个节点之间的边缘会显示有关通过该连接的请求的详细信息。您还可以在跟踪地图中查看相关下游服务的“远程”推断节点。

单击 Synthetics 节点时，侧面板会有一个**在 Synthetics 中查看**按钮会将您重定向到可在其中查看 Canary 详细信息的 Synthetics 控制台中。

![\[X-Ray 跟踪地图中的 Canary 节点（带有服务详细信息）示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-servicedetail.png)


## 对各个跟踪使用跟踪详情地图以详细查看每个请求
使用跟踪详情地图

要确定哪些服务会导致最长延迟或导致错误，请通过在跟踪地图中选择跟踪来调用跟踪详情地图。单个跟踪详细信息地图显示单个请求的 end-to-end路径。使用此方法可了解调用的服务，并直观显示上游和下游服务。

![\[X-Ray 跟踪详情地图中的 Canary 节点示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-tracemap.png)


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

在 Synthetics 金丝雀中收到故障 CloudWatch 警报后，请在 X-Ray 中使用跟踪数据的统计建模在 X-Ray Analytics 控制台中确定问题的可能根本原因。在 Analytics 控制台中，**响应时间根本原因**表显示了记录的实体路径。X-Ray 确定跟踪中的哪个路径是响应时间的最可能原因。格式指示所遇到的实体的层次结构，结尾是响应时间根本原因。

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

![\[X-Ray 跟踪映射中的 Canary 节点示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-active-select.png)


![\[Canary 节点根本原因示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-rootcause.png)


![\[表示 Canary 节点的注释筛选器示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-showannot.png)


## 确定性能瓶颈和趋势
确定瓶颈和趋势

您可以使用来自 Synthetics Canary 的持续流量在一段时间内填充跟踪详情地图，从而查看端点性能随时间的趋势。

![\[表示 Canary 节点的注释筛选器示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-distribution.png)


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

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

![\[表示 Canary 节点的注释筛选器示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-compare.png)


## 确定所有人所需的金丝雀覆盖范围 APIs 以及 URLs
确定覆盖范围需要

 使用 X-Ray Analytics 与用户比较 Canary 的体验。以下 UI 显示的蓝色趋势线代表 Canary，绿线代表用户。您还可以确定三者中有两个 URLs 没有金丝雀测试。

![\[表示 Canary 节点的注释筛选器示例。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-vs-customer.png)


## 使用组专注于 Synthetics 测试
使用测试组

 您可以使用筛选条件表达式创建 X-Ray 组以专注于某组工作流程，例如，对正在 Amazon Elastic Beanstalk上运行的“www”进行 Synthetics 测试。使用[复杂关键字](xray-console-filters.md#console-filters-complex) `service()` 和 `edge()` 来通过服务和边缘筛选。

**Example 组筛选表达式**  

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

![\[Elastic Beanstalk www 的示例节点。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/synthetics-canary-active-www.png)
