本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
檢測您的應用程式 AWS X-Ray
檢測您的應用程式需要傳送追蹤資料,以及應用程式內的傳入和輸出要求以及其他事件,以及每個要求的中繼資料。根據您的特定需求,您可以選擇或組合幾種不同的儀器選項:
-
auto 動檢測 — 透過組態變更、新增自動檢測代理程式或其他機制,以零程式碼變更來檢測您的應用程式。
-
程式庫檢測 — 對特定程式庫或架構 (例如、Apache 用戶端或用HTTP戶端) 進行最少的應用程式程式碼變更 AWS SDK,以新增預先建置的檢測。SQL
-
手動檢測 — 在您要傳送追蹤資訊的每個位置,將檢測程式碼新增至應用程式。
有幾種SDKs、代理程式和工具可用來檢測您的 X-Ray 追蹤應用程式。
主題
使用發行 AWS 版檢測您的應用程式 OpenTelemetry
AWS 發行版 to OpenTelemetry (ADOT) 是基於雲端原生計算基礎 (CNCF) OpenTelemetry 專案的 AWS 發行版。 OpenTelemetry 提供一組開放原始碼APIs、程式庫和代理程式,以收集分散式追蹤和指標。此工具組是上游 OpenTelemetry 元件的散佈版本SDKs,包括自動檢測代理程式,以及經過 AWS測試、最佳化、保護和支援的收集器。
有了ADOT,工程師可以對應用程式進行一次測試,並將相關的指標和追蹤傳送到包括 Amazon 和 Amazon Ser CloudWatch OpenSearch vice 在內的多個 AWS 監控解決方案。 AWS X-Ray
使用 X-Ray ADOT 需要兩個組件:OpenTelemetry SDK啟用與 X-Ray 一起使用,以及啟用與 X-Ray 一起使用的 OpenTelemetry 收集器發行AWS 版。 OpenTelemetry 有 AWS X-Ray 關使用發行 AWS 版的更多信息 AWS 服務,請參閱發行AWS 版的 OpenTelemetry
如需有關語言支援和使用方式的詳細資訊,請參閱上 GitHub的AWS 可觀測性
注意
您現在可以使用 CloudWatch 代理程式從 Amazon EC2 執行個體和內部部署伺服器收集指標、日誌和追蹤。 CloudWatch 代理版本 1.300025.0 及更高版本可以從OpenTelemetry或 X-Ray 客戶端收集痕跡SDKs,並將其發送到 X-Ray。使用 CloudWatch 代理程式取代 AWS Distro to OpenTelemetry (ADOT) 收集器或 X-Ray 精靈來收集追蹤,可協助您減少管理的代理程式數量。如需詳細資訊,請參閱 CloudWatch 使用指南中的CloudWatch 代理程式主題。
ADOT包括以下內容:
ADOT目前包括對 Java
ADOTSDKs對於 Java 和 Go 支持 X-Ray 集中採樣規則。如果您需要其他語言的 X-Ray 取樣規則的支援,請考慮使用 AWS X-Ray SDK.
注意
您現在可以發送 W3C 跟踪IDs到 X-Ray。根據預設,使用建立的追蹤具 OpenTelemetry 有以 W3C 追蹤內容規格為基礎的追蹤
檢測您的應用程式 AWS X-Ray SDKs
AWS X-Ray 包括一組特定的語言,用SDKs於檢測您的應用程序以將跟踪發送到 X-Ray。每個 X-Ray SDK 提供以下功能:
-
攔截器添加到您的代碼以跟踪傳入的請求 HTTP
-
用於檢測應用程式用來呼叫其他用 AWS SDK戶端的用戶端的用戶端 AWS 服務
-
用HTTP戶端檢測對其他內部和外部 HTTP Web 服務的呼叫
X-Ray SDKs 還支援檢測對SQL資料庫的呼叫、自動 AWS SDK用戶端儀器和其他功能。而不是直接將追蹤資料傳送至 X-Ray,而是SDK將JSON區段文件傳送至偵聽UDP流量的精靈程序。X-Ray 守護程序緩衝隊列中的段,並將其批量上傳到 X-Ray。
提SDKs供以下特定語言:
X-Ray 目前包括對 Java 的自動檢測支援。
在 AWS 發行版 OpenTelemetry 和 X-Ray 之間進行選擇 SDKs
X-Ray SDKs 隨附的是由提供的緊密集成的儀器解決方案的一部分 AWS。發行 AWS 版 OpenTelemetry 是更廣泛的行業解決方案的一部分,其中 X-Ray 只是眾多跟踪解決方案之一。您可以使用任何一種方法在 X-Ray 中實現 end-to-end 跟踪,但是了解差異以確定最有用的方法非常重要。
OpenTelemetry 如果您需要以下內容,我們建議您使用 AWS Distro 檢測您的應用程序:
-
能夠將跟踪發送到多個不同的跟踪後端,而無需重新檢測代碼
-
Support 由社區維護的每種語言的大量庫工具 OpenTelemetry
-
完全受管的 Lambda 層,可封裝收集遙測資料所需的一切,而不需要在使用 Java、Python 或 Node.js 時變更程式碼
注意
AWS 用於測試 Lambda 函數的發行版 OpenTelemetry 提供了更簡單的入門體驗。但是,由於靈活性 OpenTelemetry 提供,您的 Lambda 函數將需要額外的記憶體,而呼叫可能會遇到冷啟動延遲增加,這可能會產生額外費用。如果您要針對低延遲進行最佳化,而且不需要 OpenTelemetry動態設定後端目標等進階功能,您可能需要使用 AWS X-Ray SDK 來檢測您的應用程式。
如果您需要以下條件,我們建議您選擇 X-Ray SDK 測您的應用程序:
-
緊密整合的單一廠商解決方案
-
與 X-Ray 集中式取樣規則整合,包括在使用 Node.js、Python、Ruby 或時,可以從 X-Ray 主控台設定取樣規則,並在多個主機上自動使用這些規則。 NET