

# OPS04-BP05 實作交易可追溯性
<a name="ops_telemetry_dist_trace"></a>

實作您的應用程式程式碼並且設定您的工作負載元件以發出事件，這些事件會觸發為單一邏輯操作的結果，並且跨您的工作負載的各個邊界加以合併。產生對應以查看追蹤如何在您的工作負載和服務之間流動。取得對於元件之間關係的洞察，並且識別和分析問題。使用收集的資訊來確定何時需要回應，並幫助確定問題的根本原因。

 **預期成果：** 
+  收集您的工作負載之間的交易追蹤，以取得對於元件之間關係的洞察。 
+  產生對應以取得交易和事件如何在您的工作負載之間流動的更佳理解。 

 **常見的反模式：** 
+  您已實作跨多個帳戶的無伺服器微型服務架構。您的客戶遇到了間歇性的效能問題。因為您缺乏交易可追蹤性，所以您無法探索是由哪個功能或元件負責。 
+ 這是您的工作負載中的效能瓶頸。因為您缺乏交易可追蹤性，所以您無法查看您的應用程式元件之間的關係，並且識別瓶頸。
+  用於追蹤的識別符並非全域唯一的，導致分析工作負載行為時的追蹤衝突。 

 **建立此最佳實務的優勢：** 
+  了解您的工作負載之間交易的流程，可提供對於您的工作負載交易預期行為的洞察。 
+  您可以查看您的工作負載之間預期行為的變化形式，並且可以視需要回應。 
+  您可以依據獨立於交易所產生位置的唯一產生識別符來指出交易。 

 **未建立此最佳實務時的風險暴露等級：**低 

## 實作指引
<a name="implementation-guidance"></a>

 設計您的應用程式和工作負載，以發出有關跨系統元件交易流的資訊。包含在交易中的資料為全域唯一交易識別符、交易階段、作用中元件以及完成活動的時間。使用此資訊確定正在進行的活動、已經完成的活動以及已完成活動的結果。 

 **客戶範例** 

 在 AnyCompany Retail，所有交易都有產生的全域唯一 UUID。此 UUID 會在交易期間於微型服務之間傳遞。UUID 是用來在使用者與工作負載互動時建立交易追蹤。工作負載拓撲的對應是與追蹤一起產生，並且用來針對工作負載問題進行疑難排解並且改善效能。 

 **實作步驟** 

1.  檢測您的工作負載中的應用程式以發出交易追蹤。可以藉由為每個交易產生唯一識別符並且在應用程式之間傳遞來完成。 

   1.  您可以使用[適用於 OpenTelemetry 的 AWS Distro](https://aws-otel.github.io/) 中的自動檢測，實作現有應用程式中的追蹤，不需要修改您的應用程式程式碼。 

1.  產生您的應用程式拓撲的對應。使用這些對應來改善效能、取得洞察，以及協助疑難排解。 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 可以產生您的工作負載中應用程式的對應。 

 **實作計劃的工作量：**中。實作交易追蹤可能需要中等開發工作量。 

## 資源
<a name="resources"></a>

 **相關的最佳實務：** 
+  [OPS04-BP01 實作應用程式遙測](ops_telemetry_application_telemetry.md) - 應用程式遙測涵蓋交易可追蹤性和處理並且需要優先實作。 

 **相關文件：** 
+ [探索應用程式問題並且取得 AWS X-Ray Insights 的通知 ](https://aws.amazon.com/blogs/mt/discover-application-issues-get-notifications-aws-x-ray-insights/)
+ [Wealthfront 如何利用 AWS X-Ray 來分析和偵錯分散式應用程式](https://aws.amazon.com/blogs/mt/wealthfront-utilizes-aws-x-ray-analyze-debug-distributed-applications/)
+ [適用於 OpenTelemetry 的 AWS Distro 的新功能 – 追蹤支援現已全面提供](https://aws.amazon.com/blogs/aws/new-for-aws-distro-for-opentelemetry-tracing-support-is-now-generally-available/)

 **相關影片：** 
+ [AWS re:Invent 2018：深入探討 AWS X-Ray：監控現代化應用程式 (DEV324)](https://www.youtube.com/watch?v=5MQkX57eTh8)
+ [AWS re:Invent 2022 - 使用 OpenTelemetry 建置可觀察的應用程式 (BOA310)](https://www.youtube.com/watch?v=efk8XFJrW2c)
+ [AWS re:Invent 2022 - 可觀測性開放原始碼方式 (COP301-R)](https://www.youtube.com/watch?v=2IJPpdp9xU0)
+ [使用適用於 OpenTelemetry 的 AWS Distro 擷取追蹤資料](https://www.youtube.com/watch?v=837NtV0McOA)
+ [使用 AWS X-Ray 最佳化應用程式效能](https://www.youtube.com/watch?v=5lIdNrrO_o8)

 **相關範例：** 
+ [AWS X-Ray 多 API 閘道追蹤範例](https://github.com/aws-samples/aws-xray-multi-api-gateway-tracing-example)

 **相關服務：** 
+  [適用於 OpenTelemetry 的 AWS Distro](https://aws-otel.github.io/) 
+  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 