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

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

AWS X-Ray 適用於的 SDK Python

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

您可以使用 pip 下載軟體開發套件。

$ pip install aws-xray-sdk
注意

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

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

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

注意

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

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

接下來,使用適用於 Python 的 X-Ray SDK,透過修補應用程式的程式庫來測量下游呼叫。軟體開發套件支援以下程式庫。

支援的程式庫

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

開始使用 SDK 之後,請透過設定記錄器和中介軟體來自訂其行為。您可以新增外掛程式,以記錄執行應用程式所需的運算資源相關資料、定義抽樣規則以自訂抽樣行為,並設定日誌層級以在應用程式日誌中查看更多或更少的軟體開發套件資訊。

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

標註與中繼資料

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

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

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

要求

適用於 Python 的 X-Ray SDK 支援以下語言和程式庫版本。

  • 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 的 X-Ray SDK 可從中獲得pip

  • Packageaws-xray-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