

# OPS04-BP02 實作應用程式遙測
<a name="ops_observability_application_telemetry"></a>

 應用程式遙測是工作負載可觀測性的基礎。提供遙測相當重要，因為能讓您獲得可付諸行動的洞見，深入了解應用程式的狀態以及實現的技術與業務成果。從疑難排解到衡量新功能的影響，或確保與業務關鍵績效指標 (KPI) 保持一致，應用程式遙測都能為您指出建置、操作和發展工作負載的方式。 

 指標，日誌和追蹤是構成可觀測性的三大要素。這些要素可做為診斷工具來描述應用程式的狀態。經過一段時間後，這些要素可協助建立基準和識別異常狀況。然而，為了確保監控活動與業務目標保持一致，就必須定義並監控 KPI。與單獨的技術指標相比，業務 KPI 通常更容易找出問題所在。 

 其他遙測類型 (例如實際使用者監控 (RUM) 和綜合交易) 可與這些主要資料來源相輔相成。RUM 提供即時使用者互動的洞見，而綜合交易則模擬可能的使用者行為，有助於在實際使用者遇到瓶頸之前便偵測到瓶頸。 

 **預期成果：** 獲得工作負載效能且可付諸行動的洞見。這些洞見可讓您做出有關效能最佳化的主動決策、提高工作負載穩定性、使 CI/CD 程序更順暢，並且有效利用資源。 

 **常見的反模式：** 
+  不完整的可觀測性：忽略在工作負載的每一層納入可觀測性，導致出現可能遮蔽重要系統效能和行為洞見的盲點。 
+  分散的資料檢視：當資料分散在多個工具和系統中時，便難以提供涵蓋工作負載運作狀況和效能的全面概覽。 
+  使用者回報的問題：這種現象表示未能透過遙測和業務 KPI 監視進行主動問題偵測。 

 **建立此最佳實務的優勢：** 
+  明智的決策：透過遙測和業務 KPI 獲得洞見，就能做出資料驅動的決策。 
+  改善運作效率：資料驅動的資源利用率可帶來成本效益。 
+  提高工作負載穩定性：更快偵測並解決問題，進而改善正常運作。 
+  更順暢的 CI/CD 程序：從遙測資料獲得的洞見，有助於改進程序並交付可靠的程式碼。 

 **未建立此最佳實務時的曝險等級：** 高 

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

 若要為您的工作負載實作應用程式遙測，請使用類似以下的 AWS 服務： [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 和 [AWS X-Ray](https://aws.amazon.com/xray/)。Amazon CloudWatch 提供了一套全方位的監控工具，可讓您在 AWS 和內部部署環境中觀察資源和應用程式，還會收集、追蹤和分析指標、合併和監控日誌資料，並且回應資源的變更，以增進您對工作負載運作方式的了解。同時，AWS X-Ray 可讓您追蹤、分析和偵錯應用程式，藉此深入了解工作負載的行為。透過像是服務圖、延遲分佈情形和追蹤時間軸等功能，X-Ray 提供了洞見，讓您深入了解工作負載的效能及影響它的瓶頸。 

### 實作步驟
<a name="implementation-steps"></a>

1.  **確定要收集的資料：** 確定可提供工作負載運作狀況、效能和行為實質洞見的重要指標、日誌和追蹤。 

1.  **部署 [CloudWatch](https://aws.amazon.com/cloudwatch/) 代理程式：** CloudWatch 代理程式的作用在於，方便您從工作負載及其基礎設施中取得系統和應用程式指標和日誌。CloudWatch 代理程式也可用來收集 OpenTelemetry 或 X-Ray 追蹤，並傳送至 X-Ray。 

1.  **定義和監控業務 KPI：** 建立 [自訂指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) 並與您的 [業務成果保持一致](https://aws-observability.github.io/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes/)。 

1.  **使用 AWS X-Ray 檢測您的應用程式：** 除了部署 CloudWatch 代理程式之外，務必也要 [檢測您的應用程式](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html) 以產生追蹤資料。此程序可提供工作負載行為和效能的進一步洞見。 

1.  **將整個應用程式的資料收集標準化：** 將整個應用程式的資料收集實務標準化。採取一致的方式有助於找出資料關聯並進行分析，進而提供應用程式行為的全面概覽。 

1.  **分析資料並採取行動：** 一旦有了資料收集和標準化的方式，就可使用 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/features/) 進行指標和日誌分析，以及使用 [AWS X-Ray](https://aws.amazon.com/xray/features/) 進行追蹤分析。這類分析可產生有關工作負載運作狀況、效能和行為的洞見，進而引導您進行決策。 

 **實作計劃的工作量：** 高 

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

 **相關的最佳實務：** 
+  [OPS04-BP01 識別關鍵績效指標](ops_observability_identify_kpis.md) 
+  [OPS04-BP03 實作使用者體驗遙測](ops_observability_customer_telemetry.md) 
+  [OPS04-BP04 實作相依性遙測](ops_observability_dependency_telemetry.md) 
+  [OPS04-BP05 實作分散式追蹤](ops_observability_dist_trace.md) 

 **相關文件：** 
+ [AWS 可觀測性最佳實務 ](https://aws-observability.github.io/observability-best-practices/)
+ [ CloudWatch 使用者指南 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [AWS X-Ray 開發人員指南 ](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [ 檢測分散式系統，以了解運作狀態 ](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility)
+ [AWS 可觀測性 Skill Builder 課程 ](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability)
+ [ Amazon CloudWatch 最新消息 ](https://aws.amazon.com/about-aws/whats-new/management-and-governance/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23amazon-cloudwatch)
+ [AWS X-Ray 最新消息 ](https://aws.amazon.com/about-aws/whats-new/developer-tools/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23aws-x-ray)

 **相關影片：** 
+ [AWS re:Invent 2022 - Amazon 的可觀測性最佳實務 ](https://youtu.be/zZPzXEBW4P8)
+ [AWS re:Invent 2022 - 研擬可觀測性策略 ](https://youtu.be/Ub3ATriFapQ)

 **相關範例：** 
+  [One Observability 研討會](https://catalog.workshops.aws/observability/en-US) 
+ [AWS 解決方案程式庫：使用 Amazon CloudWatch 進行應用程式監控 ](https://aws.amazon.com/solutions/implementations/application-monitoring-with-cloudwatch)