適用於 Python 的AWS X-Ray SDK - AWS X-Ray

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

適用於 Python 的AWS X-Ray SDK

Python 的 X-Ray SDK 是 Python Web 應用程式的程式庫,它提供用於產生追蹤資料並將追蹤資料傳送至 X-Ray 守護程式的類別和方法。追蹤資料包括應用程式所提供之連入HTTP要求的相關資訊,以及應用程式使用、用HTTP戶端或資料SQL庫連接器對下游服務進行呼叫的相關資訊。 AWS SDK您也可以手動建立區段,並將除錯資訊新增至註釋和中繼資料中。

您可以下SDK載pip.

$ pip install aws-xray-sdk
注意

Python SDK 的 X-Ray 是一個開源項目。您可以關注該項目並在以下位置提交問題並提取請求 GitHub:gi thub.com/aws/ aws-xray-sdk-python

如果您使用 Django 或 Flask,請先將SDK中間件添加到應用程序中以跟踪傳入的請求。中介軟體會為每個追蹤的請求建立區段,並在傳送回應時完成區段。區段開啟時,您可以使用用SDK戶端的方法將資訊新增至區段,並建立子區段以追蹤下游呼叫。SDK也會自動記錄應用程式在區段開啟時擲回的例外狀況。針對其他應用程式,您可以手動建立區段

對於經過測試的應用程式或服務呼叫的 Lambda 函數,Lambda 會讀取追蹤標頭並自動追蹤已取樣的請求。對於其他函數,您可以設定 Lambda 來取樣和追蹤傳入的請求。在任何一種情況下,Lambda 都會建立區段並將其提供給 X-Ray SDK。

注意

在 Lambda 上,X-Ray SDK 是可選的。如果您沒有在函數中使用它,您的服務對應仍會包含 Lambda 服務的節點,每個 Lambda 函數有一個節點。透過新增SDK,您可以檢測函數程式碼,將子區段新增至 Lambda 記錄的函數區段。如需詳細資訊,請參閱AWS Lambda 而且 AWS X-Ray

工作程序需在 Lambda 中檢測到的 Python 函數範例,請參閱。

接下來,使用 Python SDK 的 X-Ray 通過修補應用程序的庫來檢測下游呼叫。SDK支援下列程式庫。

支援的程式庫

每當你的應用程序進行調用 AWS,一個SQL數據庫,或其他HTTP服務,SDK記錄有關在一個子段調用的信息。 AWS 服務 而您在服務中存取的資源會顯示為追蹤對映上的下游節點,以協助您識別個別連線上的錯誤和節流問題。

開始使用之後SDK,請設定記錄器和中介軟體來自訂其行為。您可以新增外掛程式來記錄應用程式執行之計算資源的相關資料、透過定義取樣規則自訂取樣行為,以及設定記錄層級以查看應用程式記錄檔SDK中的或多或少資訊。

使用註釋與中繼資料,記錄應用程式所做的請求和工作等其他資訊。註釋是簡單的鍵/值對,系統會為其建立索引以用於篩選條件表達式,因此您可以搜尋包含特定資料的追蹤。元數據條目的限制較低,並且可以記錄整個對象和數組-任何可以序列化的內容。JSON

標註與中繼資料

註釋和中繼資料是您使用 X-Ray 新增至區段的任意文字SDK。註釋會編製索引以與篩選器運算式搭配使用 中繼資料不會建立索引,但可以使用 X-Ray 主控台或在原始區段中檢視API。您授與 X-Ray 讀取權限的任何人都可以檢視此資料。

當程式碼中有很多經過檢測的用戶端時,單一請求區段可能包含大量子區段,每個使用經檢測用戶端進行的呼叫都有一個子區段。您可以將用戶端呼叫包裝在自訂子區段中,以組織和群組子區段。您可以為整個函數或一部分的程式碼建立自訂子區段。您接著可以在子區段上記錄中繼資料及標註,而非將所有項目寫入父區段。

如需類別和方法SDK的參考文件,請參AWS X-Ray SDK閱 Python API 參考

要求

Python SDK 的 X-Ray 支持以下語言和庫版本。

  • Python — 2.7, 3.4, 和更高版本

  • 賈戈-1.10 及更高版本

  • -0.10 和更高版本

  • 愛奧赫特普 — 2.3.0 和更高版本

  • AWS SDK for Python (Boto)— 1.4.0 及更新版本

  • 肉毒核心 — 1.5.0 及更高版本

  • 枚舉-0.4.7 及更高版本,適用於 Python 版本 3.4.0 及更高版本

  • 傑森泡菜 — 1.0.0 及更高版

  • 設置工具 — 40. 6.3 和更高版本

  • 包裹 — 1. 11.0 和更新版本

相依性管理

Python SDK 的 X-Ray 是可從pip.

  • Packageaws-xray-sdk

將SDK作為依賴項添加到您的requirements.txt文件中。

範例 requirements.txt
aws-xray-sdk==2.4.2 boto3==1.4.4 botocore==1.5.55 Django==1.11.3

如果您使用 Elastic Beanstalk 部署您的應用程式,Elastic Beanstalk 會自動安裝所有套件。requirements.txt