

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 X-Ray 偵錯 CloudWatch 合成 Canary
<a name="xray-services-cloudwatch-synthetics"></a>

CloudWatch Synthetics 是一項全受管服務，可讓您使用每天 24 小時、每分鐘執行一次的指令碼 Canary 來監控端點和 APIs。

您可以自訂 Canary 指令碼，以檢查下列項目中的變更：
+ 可用性
+ 延遲
+ 交易
+ 中斷或失效的連結
+ 逐步完成任務
+ 頁面載入錯誤
+ UI 資產的載入延遲
+ 複雜的精靈流程
+ 應用程式中的簽出流程

Canary 會沿著相同的路線，執行與客戶相同的動作和行為，持續驗證客戶的體驗。

若要深入了解如何設定 Synthetics 測試，請參閱[使用 Synthetics 建立及管理 Canary](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)。

![\[X-Ray 追蹤映射中的範例 Canary 節點。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-show-canary-active.png)


下列範例會示範您 Synthetics Canary 引起的偵錯問題常見使用案例。每個範例都會示範使用追蹤映射或 X-Ray Analytics 主控台進行偵錯的關鍵策略。

如需如何讀取追蹤映射並與之互動的詳細資訊，請參閱[檢視服務映射](https://docs.aws.amazon.com/xray/latest/devguide/xray-console.html#xray-console-servicemap)。

如需如何讀取 X-Ray Analytics 主控台並與之互動的詳細資訊，請參閱[與 AWS X-Ray Analytics 主控台互動](https://docs.aws.amazon.com/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)
+ [決定所有 API 和 URL 的必要 Canary 涵蓋範圍](#xray-services-cloudwatch-synthetics-workflows-impact)
+ [使用群組專注於 Synthetics 測試](#xray-services-cloudwatch-synthetics-groups)

## 在追蹤映射中檢視錯誤報告增加的 Canary
<a name="xray-services-cloudwatch-synthetics-workflows-which-canary"></a>

 若要查看 X-Ray 追蹤映射中的哪些 Canary 的錯誤、故障、限流率或回應時間變慢，您可以使用 `Client::Synthetic`[篩選條件](xray-console-filters.md)反白顯示 Synthetics Canary 用戶端節點。按一下節點會顯示整個請求的回應時間分佈。按一下兩個節點之間的邊緣，會顯示已傳送該連線之請求的詳細資訊。您也可以在追蹤映射中檢視相關下游服務的「遠端」推斷節點。

當您按一下 Synthetics 節點時，側邊面板上有一個在 **Synthetics 中檢視**按鈕，會將您重新導向至 Synthetics 主控台，您可以在其中檢查 Canary 詳細資訊。

![\[X 射線追蹤映射中包含服務詳細資訊的範例 Canary 節點。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-servicedetail.png)


## 使用個別追蹤的追蹤詳細資訊映射來詳細檢視每個請求
<a name="xray-services-cloudwatch-synthetics-workflows-trace-map"></a>

若要判斷哪些服務產生最多延遲或導致錯誤，請在追蹤映射中選取追蹤，以叫用追蹤詳細資訊映射。個別追蹤詳細資訊映射會顯示單一請求的end-to-end路徑。使用此項目可了解呼叫的服務，並視覺化上游和下游服務。

![\[X 射線追蹤詳細資訊映射中的範例 Canary 節點。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-tracemap.png)


## 判斷上游和下游服務中持續性失敗的根本原因
<a name="xray-services-cloudwatch-synthetics-workflows-root-cause"></a>

收到 Synthetics Canary 中故障的 CloudWatch 警示後，請使用 X-Ray 中追蹤資料的統計建模，在 X-Ray Analytics 主控台中判斷問題的可能根本原因。在 Analytics 主控台中，**回應時間根本原因**資料表會顯示記錄的實體路徑。X-Ray 會判斷追蹤中哪個路徑最有可能導致回應時間。格式指出實體遇到的階層，以回應時間根本原因結束。

下列範例顯示，在 API Gateway 上執行之 API "XXX" 的 Synthetics 測試由於來自 Amazon DynamoDB 資料表的輸送量容量例外狀況而失敗。

![\[X-Ray 追蹤映射中的範例 Canary 節點。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-active-select.png)


![\[範例 Canary 節點根本原因。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-rootcause.png)


![\[指出 Canary 節點的範例註釋篩選條件。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-showannot.png)


## 識別效能瓶頸和趨勢
<a name="xray-services-cloudwatch-synthetics-workflows-bottlenecks"></a>

您可以使用來自 Synthetics Canary 的連續流量，在一段時間內填入追蹤詳細資訊映射，來檢視端點效能隨時間變化的趨勢。

![\[指出 Canary 節點的範例註釋篩選條件。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-distribution.png)


## 比較變更前後的延遲及錯誤率或容錯率
<a name="xray-services-cloudwatch-synthetics-workflows-latency"></a>

精確指出發生變更的時間，以將該變更與 Canary 所發現問題的增加相關聯。使用 X-Ray Analytics 主控台將時間範圍前後的 定義為不同的追蹤集，在回應時間分佈中建立視覺差異。

![\[指出 Canary 節點的範例註釋篩選條件。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-compare.png)


## 決定所有 API 和 URL 的必要 Canary 涵蓋範圍
<a name="xray-services-cloudwatch-synthetics-workflows-impact"></a>

 利用 X-Ray Analytics 比較 Canary 和使用者的經歷。下面的 UI 中，藍色趨勢線表示 Canary，綠色趨勢線代表使用者。您也可以看到三個 URL 中有兩個沒有 Canary 測試。

![\[指出 Canary 節點的範例註釋篩選條件。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-vs-customer.png)


## 使用群組專注於 Synthetics 測試
<a name="xray-services-cloudwatch-synthetics-groups"></a>

 您可以使用篩選條件表達式來建立 X-Ray 群組，以專注於特定的一組工作流程，例如在 上執行的應用程式「www」的 Synthetics 測試 AWS Elastic Beanstalk。使用[複雜的關鍵字](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.aws.amazon.com/zh_tw/xray/latest/devguide/images/synthetics-canary-active-www.png)
