追蹤 - AWS 方案指引

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

追蹤

跟踪涉及專門使用有關程序的進程日誌信息。記錄中的深入分析可協助工程師偵錯個別交易並找出瓶頸。追蹤可以自動啟用,也可以使用手動檢測來啟用。

由於應用程式與不同的服務整合,因此請務必識別應用程式及其基礎服務的執行方式。追蹤可使用軌跡和跨距。跟踪是完整的請求過程,每個跟踪由跨度組成。跨度是一個標記的時間間隔,是一個系統的各個組件或服務中的活動。跟踪提供了對應用程序發出請求時會發生什麼情況的大圖片。

應用團隊

應用程式開發人員會傳送傳入和輸出要求的追蹤資料,以及應用程式內其他事件,以及每個要求的中繼資料,藉此檢測其應用程式 若要產生追蹤,必須檢測應用程式才能產生追蹤。儀器可以是自動或手動的。

自動儀表

您可以使用自動檢測從應用程式收集遙測,而不需要修改原始程式碼。自動檢測代理程式可以產生應用程式或服務的應用程式追蹤。一般而言,您可以使用組態變更來新增代理程式或其他機制。

庫檢測涉及進行最少的應用程序代碼更改以添加預構建的檢測。檢測以特定程式庫或架構為目標,例如 AWS SDK、Apache HTTP 用戶端或 SQL 用戶端。

手動儀器

在這種方法中,應用程式開發人員會將檢測程式碼新增至應用程式,在他們想要收集追蹤資訊的每個位置。例如,使用方面導向程式設計 (AOP) 來收集追蹤資料。 AWS X-Ray 開發人員可以使用 SDK 來檢測其應用程式。

抽樣

追蹤資料通常是在大量產生的。重要的是要有一種機制來確定是否應該導出跟踪數據。採樣是確定應導出哪些數據的過程。這樣做通常是為了節省成本。透過自訂取樣規則,您可以控制記錄的資料量。您也可以在不變更和重新部署程式碼的情況下變更取樣行為。控制取樣率以產生適當的軌跡數量非常重要。

應用程序開發人員可以通過將元數據添加為鍵值對來註釋跟踪。註釋豐富了跟踪,並幫助在後端優化過濾。

DevOps 團隊

DevOps 工程師經常被要求為應用程式開發人員設定追蹤環境,以視覺化基礎架構和應用程式的追蹤。追蹤環境設定包括從不同來源收集追蹤資料,並將其傳送至中央存放區以進行視覺化。

追蹤後端

追蹤後端是一種服務,例如收集 AWS X-Ray 應用程式所提供之要求的相關資料。它提供的工具可讓您用來檢視、篩選和深入瞭解該資料,以識別問題和最佳化的機會。對於應用程式的任何追蹤要求,您可以查看有關要求和回應的詳細資訊,以及應用程式對下游 AWS 資源、微服務、資料庫和 Web API 進行的其他呼叫的詳細資訊。

自動化追蹤

由於不同的應用程式有不同的追蹤需求,因此自動化追蹤基礎結構的組態與作業非常重要。使用 IaC 工具來佈建追蹤基礎結構的後端。

使用 CD 管線自動執行下列作業:

  • 視需求部署追蹤基礎結構,並在不需要時拆除它。

  • 跨應用程式部署追蹤組態。

追蹤工具

AWS 為追蹤及其相關視覺效果提供下列服務:

  • AWS X-Ray 除了來自應用程式使用的 AWS 服務 (已與 X-Ray 整合) 的追蹤外,還會接收來自應用程式的追蹤。有數個 SDK、代理程式和工具可用來檢測您的應用程式以進行 X-Ray 追蹤。如需詳細資訊,請參閱 AWS X-Ray 文件

    開發人員也可以使用 AWS X-Ray SDK 將追蹤傳送至 X-Ray。 AWS X-Ray 提供Go、Java、Node.js Python、.NET 和Ruby. 每個 X-Ray SDK 提供以下內容:

    • 攔截程式,可新增至您的程式碼以追蹤傳入的 HTTP 請求

    • 用於檢測應用程式用來呼叫其他 AWS 服務的 AWS SDK 用戶端的用戶端處理常式

    • 用於檢測對其他內部和外部 HTTP Web 服務的呼叫的 HTTP 用戶端

    X-Ray SDK 也支援檢測對 SQL 資料庫的呼叫、自動 AWS SDK 用戶端檢測和其他功能。SDK 不會將追蹤資料直接傳送至 X-Ray,而是將 JSON 區段文件傳送至偵聽 UDP 流量的精靈程序。X-Ray 守護程序緩衝隊列中的段,並將其批量上傳到 X-Ray。如需有關使用 X-Ray SDK 檢測應用程式的詳細資訊,請參閱 X-Ray 文件

  • Amazon Ser OpenSearch vice 是用於執行和擴展 OpenSearch 叢集的 AWS 受管服務,可用於集中存放日誌、指標和追蹤。可觀測性外掛程式為從常見資料來源收集和監控指標、日誌和跟蹤提供了統一的體驗。集中在一個位置收集和監控資料,可為您的整個基礎架構提供完整堆疊的 end-to-end 可觀察性。如需實作資訊,請參閱OpenSearch 服務文件

  • AWS 適用於 OpenTelemetry (ADOT) 的 AWS 發行版是以雲端原生運算基礎 (CNCF) 專案為基礎的發行版。 OpenTelemetry ADOT 目前包括對 Java 和 Python 的自動檢測支持。此外,ADOT 透過 AD OT 託管 Lambda 層Java,支援使用 Node.js 和執行階段對 AWS Lambda 函數及其下游請求進Python行自動檢測。開發人員可以使用 ADOT 收集器將追蹤傳送到包括 AWS X-Ray Amazon OpenSearch 服務在內的不同後端。

    如需如何使用 ADOT SDK 檢測應用程式的參考範例,請參閱件。如需如何使用 ADOT 開發套件將資料傳送至 Amazon OpenSearch 服務的參考範例,請參閱OpenSearch 服務文件

    有關如何檢測在 Amazon EKS 上運行的應用程序的參考示例,請參閱博客文章使用適用於 AWS Distro 的 Amazon EKS 附加組件的指標和跟踪收集。 OpenTelemetry