View a markdown version of this page

Applicare le patch alle librerie per analizzare le chiamate a valle - AWS X-Ray

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Applicare le patch alle librerie per analizzare le chiamate a valle

Nota

X-Ray SDK/Daemon Avviso di manutenzione: il 25 febbraio 2026, AWS X-Ray SDKs/Daemon entrerà in modalità manutenzione, che AWS limiterà le versioni di X-Ray SDK e Daemon per risolvere solo i problemi di sicurezza. Per ulteriori informazioni sulla tempistica dell'assistenza, consulta. Cronologia di X-Ray SDK e Daemon Support Ti consigliamo di migrare a. OpenTelemetry Per ulteriori informazioni sulla migrazione a OpenTelemetry, vedere Migrazione dalla X-Ray strumentazione alla strumentazione. OpenTelemetry

Per strumentare le chiamate downstream, usate l' X-Ray SDK for Python per patchare le librerie utilizzate dall'applicazione. L' X-Ray SDK per Python può applicare patch alle seguenti librerie.

Librerie supportate
  • botocore, boto3 — Client per strumenti AWS SDK for Python (Boto) .

  • pynamodb— La versione di Instrument PynamoDB del client Amazon DynamoDB.

  • aiobotocore, aioboto3 — Instrument asyncio: versioni integrate dell'SDK per client Python (Boto3).

  • requests, — Client HTTP di alto livello per Instrument. aiohttp

  • httplib, http.client — Client HTTP di basso livello dello strumento e librerie di livello superiore che li utilizzano.

  • sqlite3— Client SQLite di Instrument.

  • mysql-connector-python— Client MySQL di Instrument.

  • pg8000— Interfaccia Pure-Python PostgreSQL dello strumento.

  • psycopg2— Adattatore per database PostgreSQL Instrument.

  • pymongo— Client MongoDB per strumenti.

  • pymysql— Client basati su PyMy SQL di Instrument per MySQL e MariaDB.

Quando si utilizza una libreria patchata, l' X-Ray SDK per Python crea un sottosegmento per la chiamata e registra le informazioni relative alla richiesta e alla risposta. Un segmento devono essere disponibili affinché l'SDK possa creare il sottosegmento, sia dal middleware dell'SDK che da AWS Lambda.

Nota

Se utilizzi SQLAlchemy ORM, puoi analizzare le tue query SQL importando la versione dell'SDK delle classi della sessione e delle query di SQLAlchemy. Consulta Utilizzare SQLAlchemy ORM per le relative istruzioni.

Per installare le patch disponibili per tutte le librerie, utilizza la funzione patch_all in aws_xray_sdk.core. Alcune librerie, ad esempio httplib e urllib, potrebbero dover abilitare l'applicazione di patch doppie chiamando patch_all(double_patch=True).

Esempio main.py — Correggi tutte le librerie supportate
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()

Per applicare patch a una singola libreria, chiamare patch con una tupla del nome della libreria. Per raggiungere questo risultato, è necessario fornire un singolo elenco di elementi.

Esempio main.py — Librerie specifiche per le patch
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)
Nota

In alcuni casi, la chiave utilizzata per installare le patch di una libreria non corrisponde al nome della libreria. Alcune chiavi servono come alias per una o più librerie.

Alias librerie

Tracciamento del contesto per le attività asincrone

Per le librerie asyncio integrate o per creare sottosegmenti per funzioni asincrone, devi anche configurare l' X-Ray SDK per Python con un contesto asincrono. Importa la AsyncContext classe e passane un'istanza al registratore. X-Ray

Nota

Le librerie di supporto del framework Web, come AIOHTTP, non vengono gestite tramite il modulo aws_xray_sdk.core.patcher. Non sono presenti nel catalogo patcher delle librerie supportate.

Esempio main.py — Patch aioboto3
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)