修補程式庫來檢測下游呼叫 - AWS X-Ray

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

修補程式庫來檢測下游呼叫

若要測量下游呼叫,請使用 Python 專用的 X-Ray SDK 來修補應用程式所使用的程式庫。適用於 Python 的 X 射線 SDK 可以修補以下庫。

支援的程式庫

當您使用已修補的程式庫時,Python 的 X-Ray SDK 會建立呼叫的子區段,並記錄來自要求和回應的資訊。區段必須透過軟體開發套件中介軟體或 AWS Lambda 供軟體開發套件使用,以建立子區段。

注意

若您使用 SQLAlchemy ORM,您可以透過匯入 SQLAlchemy 工作階段和查詢類別的軟體開發套件版本,來檢測您的 SQL 查詢。如需說明,請參閱使用 SQLAlchemy ORM

若要修補所有可用程式庫,請使用 aws_xray_sdk.core 中的 patch_all 函數。有些程式庫 (例如 httpliburllib) 可能需要呼叫 patch_all(double_patch=True) 以啟用雙重修補。

範例 main.py — 修補所有支援的程式庫
import boto3 import botocore import requests import sqlite3 from aws_xray_sdk.core import xray_recorder from aws_xray_sdk.core import patch_all patch_all()

若要修補單一程式庫,請以該程式庫名稱的元組來呼叫 patch。若要執行這個作業,您將需要提供單一個元素清單。

範例 main.py — 修補程式特定程式庫
import boto3 import botocore import requests import mysql-connector-python from aws_xray_sdk.core import xray_recorder from aws_xray_sdk.core import patch libraries = (['botocore']) patch(libraries)
注意

在某些情況下,您用來修補程式庫的鍵會與程式庫名稱不相符。有些鍵會做為一或多個程式庫的別名。

程式庫別名

追蹤非同步工作的內容

對於asyncio整合式程式庫,或至為非同步函數建立子區段時,您還必須使用異步上下文為 Python 配置 X 射線 SDK。匯入AsyncContext類並將其實例傳遞給 X 射線記錄器。

注意

Web 架構支援程式庫,例如 AIOHTTP,將不會經由 aws_xray_sdk.core.patcher 模組獲得處理。它們不會出現在支援程式庫的 patcher 目錄中。

範例 main.py — 安全修補程式 3
import asyncio import aioboto3 import requests from aws_xray_sdk.core.async_context import AsyncContext from aws_xray_sdk.core import xray_recorder xray_recorder.configure(service='my_service', context=AsyncContext()) from aws_xray_sdk.core import patch libraries = (['aioboto3']) patch(libraries)