

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

 應用程式遙測是工作負載可觀測性的基礎。您的應用程式應該發出遙測，讓您洞悉應用程式的狀態和業務成果的成就。從疑難排解到衡量新功能的影響，應用程式遙測可告知您建置、操作和發展工作負載的方式。 

 應用程式遙測由指標和日誌組成。指標是診斷資訊，例如您的脈搏或體溫。指標是共同用來描述應用程式的狀態。隨時間收集指標可以用來開發基準和偵測異常。日誌是應用程式傳送的訊息，其中關於內部狀態或發生的事件。錯誤碼、交易識別碼和使用者動作都是所記錄事件的範例。 

 **預期成果：** 
+  您的應用程式會發出指標和日誌，讓您洞悉其運作狀態和業務成果的成就。 
+  所有應用程式的指標和日誌會集中儲存在工作負載中。 

 **常見的反模式：** 
+  您的應用程式不會發出遙測。當發生錯誤時，您必須仰賴客戶來告知您。 
+  客戶已回報，您的應用程式沒有回應。不親自使用應用程式來了解目前的使用者體驗，您便沒有遙測功能，且無法確認問題存在或描述問題特性。 

 **建立此最佳實務的優勢：** 
+  您可以了解應用程式的運作狀態、使用者體驗，以及業務成果的成就。 
+  您可以快速反映應用程式運作狀態中的變更。 
+  您可以開發應用程式運作狀態趨勢。 
+  您可以做出明智的決策，改善您的應用程式。 
+  您可以更快地偵測並解決應用程式問題。 

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

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

 實作應用程式遙測包含三個步驟：識別儲存遙測的位置、識別描述應用程式狀態的遙測，以及檢測要發出遙測的應用程式。 

 **客戶範例** 

AnyCompany Retail 具有以微型服務為基礎的架構。作為架構設計程序的一部分，他們識別了應用程序遙測，這有助於他們了解每個微型服務的狀態。例如，使用者購物車服務發出遙測，其中包括關於新增到購物車、放棄購物車，以及將商品新增到購物車所需時間長度等事件。所有微型服務都會記錄錯誤、警告和交易資訊。遙測會傳送至 Amazon CloudWatch 進行儲存和分析。

 **實作步驟** 

1.  針對工作負載中的應用程式識別儲存遙測的中心位置。該位置應支援遙測收集和分析功能。異常偵測和自動化洞察是建議功能。 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch) 會提供遙測收集、儀表板、分析和事件產生功能。 

1.  若要識別您需要何種遙測，首先請回答下列問題：應用程式的狀態為何？ 您的應用程式應發出可共同解答此問題的日誌和指標。如果您無法使用現有的應用程式遙測來回答問題，請與業務和工程利害關係人合作，以建立遙測要求清單。 

   1.  當識別並開發新的應用程式遙測時，您可以向 AWS 帳戶 團隊要求專家技術建議。 

1.  一旦識別了其他應用程式遙測，請與您的工程利害關係人合作，以檢測您的應用程式。 

   1.  [適用於 Open Telemetry 的 AWS Distro](https://aws-otel.github.io/) 提供 API、程式庫和收集應用程式遙測的代理程式。[此範例示範如何使用自訂指標檢測 JavaScript 應用程式](https://aws-otel.github.io/docs/getting-started/js-sdk/metric-manual-instr)。 

   1.  如果您想要了解 AWS 所提供的可觀測性服務，請參加 [One Observability 研討會](https://catalog.workshops.aws/observability/en-US)，或要求 AWS 帳戶 團隊提供支援。 

   1.  如需更深入探討應用程式遙測，請閱讀 Amazon Builder’s Library 中的[檢測分散式系統以了解運作狀態](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/)一文，其中說明了 Amazon 如何檢測應用程式，可作為您自行制定檢測指導方針的指南。 

 **實作計劃的工作量：**高。檢測應用程式並集中儲存遙測資料，可能需要可觀的投資。 

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

 **相關的最佳實務：** 

[OPS04-BP02 實作和設定工作負載遙測](ops_telemetry_workload_telemetry.md) – 應用程式遙測是工作負載遙測的元件。若要了解整體工作負載的運作狀態，您必須了解構成工作負載之個別應用程式的運作狀態。

[OPS04-BP03 實作使用者活動遙測](ops_telemetry_customer_telemetry.md) – 使用者活動遙測通常是應用程式遙測的子集。新增至購物車事件、點擊流或已完成交易等使用者活動，可讓您洞悉使用者體驗。

[OPS04-BP04 實作相依性遙測](ops_telemetry_dependency_telemetry.md) – 相依性檢查與應用程式遙測相關，且可能會對您的應用程式檢測。如果您的應用程式依賴 DNS 或資料庫等外部相依性，您的應用程式可以發出有關連線能力、逾時和其他事件的指標和日誌。

[OPS04-BP05 實作交易可追溯性](ops_telemetry_dist_trace.md) – 跨工作負載追蹤交易需要每個應用程式發出其如何處理共用事件的相關資訊。個別應用程式處理這些事件的方式是透過其應用程式遙測發出的。

[OPS08-BP02 定義工作負載指標](ops_workload_health_design_workload_metrics.md) – 工作負載遙測是工作負載的重要運作狀態指標。重要應用程式指標是工作負載指標的一部分。

 **相關文件：** 
+  [AWS Builders Library – 偵測分散式系統，以瞭解運作狀態](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [適用於 OpenTelemetry 的 AWS Distro](https://aws-otel.github.io/) 
+  [AWS Well-Architected 卓越營運要素白皮書 – 設計遙測](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/design-telemetry.html) 
+  [使用篩選條件從日誌事件建立指標](https://docs.aws.amazon.com/Amazon/latest/logs/MonitoringLogData.html) 
+  [使用 Amazon CloudWatch 實作記錄和監控](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/welcome.html) 
+  [使用適用於 OpenTelemetry 的 AWS Distro 監控應用程式運作狀態和效能](https://aws.amazon.com/blogs/opensource/monitoring-application-health-and-performance-with-aws-distro-for-opentelemetry/) 
+  [新增功能 – 如何使用 Amazon CloudWatch Agent 更妥善地監控自訂應用程式指標](https://aws.amazon.com/blogs/devops/new-how-to-better-monitor-your-custom-application-metrics-using-amazon-cloudwatch-agent/) 
+  [AWS 的可觀測性](https://aws.amazon.com/products/management-and-governance/use-cases/monitoring-and-observability/) 
+  [案例 – 將指標發佈至 CloudWatch](https://docs.aws.amazon.com/Amazon/latest/monitoring/PublishMetrics.html) 
+  [開始建置 – 如何有效率地監控您的應用程式](https://aws.amazon.com/startups/start-building/how-to-monitor-applications/) 
+  [搭配使用 CloudWatch 與 AWS SDK](https://docs.aws.amazon.com/Amazon/latest/monitoring/sdk-general-information-section.html) 

 **相關影片：** 
+  [AWS re:Invent 2021 - 可觀測性開放原始碼方式](https://www.youtube.com/watch?v=vAnIhIwE5hY) 
+  [使用 CloudWatch Agent 從 Amazon EC2 執行個體收集指標和日誌](https://www.youtube.com/watch?v=vAnIhIwE5hY) 
+  [如何輕鬆地為您的 AWS 工作負載設定應用程式監控 - AWS 線上技術會談](https://www.youtube.com/watch?v=LKCth30RqnA) 
+  [精通無伺服器應用程式的可觀測性 - AWS 線上技術會談](https://www.youtube.com/watch?v=CtsiXhiAUq8) 
+  [搭配 AWS 的開放原始碼可觀測性 - AWS 虛擬研討會](https://www.youtube.com/watch?v=vAnIhIwE5hY) 

 **相關範例：** 
+  [AWS 記錄和監控範例資源](https://github.com/aws-samples/logging-monitoring-apg-guide-examples) 
+  [AWS 解決方案：Amazon CloudWatch 監控架構](https://aws.amazon.com/solutions/implementations/amazon-cloudwatch-monitoring-framework/?did=sl_card&trk=sl_card) 
+  [AWS 解決方案︰集中式記錄](https://aws.amazon.com/solutions/implementations/centralized-logging/) 
+  [One Observability 研討會](https://catalog.workshops.aws/observability/en-US) 

 **相關服務：** 
+ [ Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)