

# OPS 4  您如何設計工作負載以便了解其狀況？
<a name="w2aac19b5b7b5"></a>

 設計工作負載，以便它為您提供了解其內部狀態所需的跨全部元件 (例如指標、日誌和追蹤) 的資訊。這讓您能在適當時機提供有效回應。 

**Topics**
+ [OPS04-BP01 實作應用程式遙測](ops_telemetry_application_telemetry.md)
+ [OPS04-BP02 實作和設定工作負載遙測](ops_telemetry_workload_telemetry.md)
+ [OPS04-BP03 實作使用者活動遙測](ops_telemetry_customer_telemetry.md)
+ [OPS04-BP04 實作相依性遙測](ops_telemetry_dependency_telemetry.md)
+ [OPS04-BP05 實作交易可追溯性](ops_telemetry_dist_trace.md)

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

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

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

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

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

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

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

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

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

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

 **實作步驟** 

 第一步是針對工作負載中的應用程式識別儲存遙測的中心位置。如果您沒有現有的平台， [Amazon CloudWatch](https://aws.amazon.com/cloudwatch) 會提供遙測收集、儀表板、分析和事件產生功能。 

 若要識別您需要的遙測，請參考下列問題： 
+  我的應用程式的運作狀態是否良好？ 
+  我的應用程式是否實現了業務成果？ 

   您的應用程式應該發出日誌和指標，並共同回答這些問題。如果您無法使用現有的應用程式遙測來回答這些問題，請與商務和工程利害關係人合作，以建立可以回答這些問題的遙測清單。當識別並開發新的應用程式遙測時，您可以向 AWS 帳戶 團隊要求專家技術建議。 

   一旦識別了其他應用程式遙測，請與您的工程利害關係人合作，以檢測您的應用程式。 [適用於 Open Telemetry 的 AWS Distro](https://aws-otel.github.io/) 提供 API、程式庫和代理程式，收集應用程式遙測。 [此範例示範如何使用自訂指標檢測 JavaScript 應用程式。](https://aws-otel.github.io/docs/getting-started/js-sdk/metric-manual-instr)。 

   客戶若想要了解 AWS 提供的可觀察性服務，可以透過自己的 [一個觀察工作坊](https://catalog.workshops.aws/observability/en-US) 來運作或向其 AWS 帳戶 團隊要求支援來指引他們。此工作坊會透過 AWS 的可觀察性解決方案指引您，並提供如何使用它們的實際操作範例。 

   如需更深入探討應用程式遙測，請閱讀 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/AmazonCloudWatch/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/AmazonCloudWatch/latest/monitoring/PublishMetrics.html) 
+  [開始建置 – 如何有效率地監控您的應用程式](https://aws.amazon.com/startups/start-building/how-to-monitor-applications/) 
+  [使用 CloudWatch 搭配 AWS SDK](https://docs.aws.amazon.com/AmazonCloudWatch/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/) 
+  [一個觀察工作坊](https://catalog.workshops.aws/observability/en-US) 

# OPS04-BP02 實作和設定工作負載遙測
<a name="ops_telemetry_workload_telemetry"></a>

 設計和設定您的工作負載，以發出有關其內部狀態和當前狀況的資訊，例如 API 呼叫量、HTTP 狀態碼和擴展事件。使用此資訊來協助確定何時需要回應。 

 使用 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 這類服務彙總工作負載元件的日誌和指標 (例如， [AWS CloudTrail 的 API 日誌](https://aws.amazon.com/cloudtrail/)、 [AWS Lambda 指標](https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html)， [Amazon VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)和 [其他服務](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/aws-services-sending-logs.html)) 建立持續整合/持續部署 (CI/CD) 管道。 

 **常用的反模式：** 
+  您的客戶在抱怨效能不佳。您的應用程式最近無變更，因此您懷疑工作負載元件發生問題。您沒有可分析的遙測資料，以判斷哪個或哪些元件造成效能不佳。 
+  您的應用程式無法連線。您缺乏遙測資料來判斷它是否為網路問題。 

 **建立此最佳實務的優勢：** 了解工作負載內部發生的情況，讓您可以視需要做出回應。 

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

## 實作指引
<a name="implementation-guidance"></a>
+  實作日誌和指標遙測：檢測您的工作負載，以發出有關其內部狀態、狀況和業務成果實現情況的資訊。使用此資訊來確定何時需要回應。 
  +  [使用 Amazon CloudWatch 更好地了解您的 VM - AWS 線上技術會談](https://youtu.be/1Ck_me4azMw) 
  +  [Amazon CloudWatch 的運作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html) 
  +  [什麼是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
  +  [使用 Amazon CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
  +  [什麼是 Amazon CloudWatch Logs？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 
    +  實作和設定工作負載遙測：設計和設定您的工作負載，以發出有關其內部狀態和當前狀況的資訊 (例如 API 呼叫量、HTTP 狀態碼和擴展事件)。 
      +  [Amazon CloudWatch 指標和維度參考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
      +  [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 
      +  [什麼是 AWS CloudTrail？](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 
      +  [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

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

 **相關文件：** 
+  [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 
+  [Amazon CloudWatch 文件](https://docs.aws.amazon.com/cloudwatch/index.html) 
+  [Amazon CloudWatch 指標和維度參考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
+  [Amazon CloudWatch 的運作方式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html) 
+  [使用 Amazon CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
+  [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [什麼是 AWS CloudTrail？](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 
+  [什麼是 Amazon CloudWatch Logs？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 
+  [什麼是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 

 **相關影片：** 
+  [AWS 上的應用程式效能管理](https://www.youtube.com/watch?v=5T4stR-HFas) 
+  [使用 Amazon CloudWatch 更好地了解您的 VM](https://youtu.be/1Ck_me4azMw) 
+  [使用 Amazon CloudWatch 更好地了解您的 VM - AWS 線上技術會談](https://youtu.be/1Ck_me4azMw) 

# OPS04-BP03 實作使用者活動遙測
<a name="ops_telemetry_customer_telemetry"></a>

 檢測您的應用程式程式碼，以發出有關使用者活動的資訊 (例如，點按流或已開始、已放棄和已完成的交易)。使用此資訊來了解應用程式如何被使用、使用模式以及確定何時需要回應。 

 **常用的反模式：** 
+  您的開發人員已部署新功能，而不需使用者遙測功能，而且使用率也已提升。您無法判斷提高的使用率是來自新功能的使用，還是新程式碼產生的問題。 
+  您的開發人員已部署新功能，而不需使用者遙測功能。若不主動詢問您的客戶，您無法判斷客戶是否正在使用它。 

 **建立此最佳實務的優勢：** 了解客戶如何使用您的應用程式來識別使用模式、意外行為，並讓您能夠在必要時做出回應。 

 **若未建立此最佳實務，暴露的風險等級為：** 中 

## 實作指引
<a name="implementation-guidance"></a>
+  實作使用者活動遙測：設計您的應用程式程式碼，以發出有關使用者活動的資訊 (例如，點按流或已開始、已放棄和已完成的交易)。使用此資訊來了解應用程式如何被使用、使用模式以及確定何時需要回應。 

# OPS04-BP04 實作相依性遙測
<a name="ops_telemetry_dependency_telemetry"></a>

 設計和設定您的工作負載，以發出有關其相依資源之狀態 (例如，可達性或回應時間) 的資訊。外部相依性的範例可包含外部資料庫、DNS 和網路連線。使用此資訊來確定何時需要回應。 

 **常用的反模式：** 
+  若未手動執行檢查來查看您的 DNS 供應商是否正常運作，您將無法判斷應用程式無法存取的原因是否是 DNS 問題。 
+  您的購物車應用程式無法完成交易。如果沒有聯絡信用卡處理供應商進行驗證，您就無法判斷是否是供應商的問題。 

 **建立此最佳實務的優勢：** 了解依存項目的運作狀態，讓您可以視需要做出回應。 

 **若未建立此最佳實務，暴露的風險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>
+  實作相依性遙測：設計和設定您的工作負載，以發出有關其所依賴系統的狀態和狀況的資訊。此處提供的一些範例包括：外部資料庫、DNS、網路連線和外部信用卡處理服務。 
  +  [Amazon CloudWatch Agent 與 AWS Systems Manager 整合 - 適用於 Linux 和 Windows 的統一指標和日誌收集](https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-agent-with-aws-systems-manager-integration-unified-metrics-log-collection-for-linux-windows/) 
  +  [使用 CloudWatch Agent 從 Amazon EC2 執行個體和內部部署伺服器收集指標和日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) 

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

 **相關文件：** 
+  [Amazon CloudWatch Agent 與 AWS Systems Manager 整合 - 適用於 Linux 和 Windows 的統一指標和日誌收集](https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-agent-with-aws-systems-manager-integration-unified-metrics-log-collection-for-linux-windows/) 
+  [使用 CloudWatch Agent 從 Amazon EC2 執行個體和內部部署伺服器收集指標和日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) 

   **相關範例：** 
+  [Well-Architected 實驗室 – 相依性監控](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_dependency_monitoring/) 

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

 實作您的應用程式程式碼並設定您的工作負載元件，以發出有關整個工作負載交易流的資訊。使用此資訊來確定何時需要回應，並幫助確定問題的根本原因。 

 在 AWS 上，您可以使用 [AWS X-Ray](https://aws.amazon.com/xray/)等分散式追蹤服務，在交易通過工作負載時收集和記錄追蹤、產生地圖以查看交易如何在不同的工作負載和服務之間流動、深入了解元件之間的關係，以及即時確定和分析問題。 

 **常用的反模式：** 
+  您已實作跨多個帳戶的無伺服器微型服務架構。您的客戶遇到了間歇性的效能問題。因為缺少讓您能找出應用程式中存在效能問題及造成問題原因的軌跡，所以您無法找出哪個函數或元件應該負責。 
+  您正嘗試判斷工作負載中效能瓶頸的位置，以便在開發工作中解決這些瓶頸。您無法查看應用程式元件和與其互動的服務之間的關係，以判斷瓶頸的位置，原因是您缺少讓自己可深入檢視影響應用程式效能的特定服務和路徑之軌跡。 

 **建立此最佳實務的優勢：** 了解工作負載中的交易流程，讓您可以了解工作負載交易的預期行為，以及工作負載中預期行為的變化，讓您能夠在必要時做出回應。 

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

## 實作指引
<a name="implementation-guidance"></a>
+  實作交易可追溯性：設計您的應用程式和工作負載，以發出有關跨系統元件的交易流的資訊，例如交易階段、作用中元件和完成活動的時間。使用此資訊確定正在進行的活動、已經完成的活動以及已完成活動的結果。這可以幫助您確定何時需要回應。例如，某個元件內的交易回應時間比預期的長，可能表示該元件存在問題。 
  +  [AWS X-Ray](https://aws.amazon.com/xray/) 
  +  [什麼是 AWS X-Ray？](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 

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

 **相關文件：** 
+  [AWS X-Ray](https://aws.amazon.com/xray/) 
+  [什麼是 AWS X-Ray？](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 