View a markdown version of this page

Patchen von Bibliotheken zum Instrumentieren von nachgelagerten Aufrufen - AWS X-Ray

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Patchen von Bibliotheken zum Instrumentieren von nachgelagerten Aufrufen

Anmerkung

X-Ray SDK/Daemon Wartungshinweis — Am 25. Februar 2026 wechselt das in den AWS X-Ray SDKs/Daemon Wartungsmodus, in dem die X-Ray SDK- und Daemon-Versionen begrenzt AWS werden, um ausschließlich Sicherheitsprobleme zu beheben. Weitere Informationen zum Zeitplan für den Support finden Sie unter. Zeitplan für die Support von X-Ray SDK und Daemon Wir empfehlen die Migration zu OpenTelemetry. Weitere Informationen zur Migration zu OpenTelemetry finden Sie unter Migration von X-Ray Instrumentierung zu OpenTelemetry Instrumentierung.

Um Downstream-Aufrufe zu instrumentieren, verwenden Sie das X-Ray SDK für Python, um die Bibliotheken zu patchen, die Ihre Anwendung verwendet. Das X-Ray SDK für Python kann die folgenden Bibliotheken patchen.

Unterstützte Bibliotheken
  • botocore, boto3 — AWS SDK for Python (Boto) Instrument-Kunden.

  • pynamodb— Die Version des Amazon DynamoDB-Clients von Instrument PynamoDB.

  • aiobotocore, aioboto3 — In Instrument Asyncio integrierte Versionen des SDK für Python-Clients (Boto3).

  • requests, aiohttp — Instrumenten-HTTP-Clients auf hoher Ebene.

  • httplib, http.client — Instrumentiere HTTP-Clients auf niedriger Ebene und die übergeordneten Bibliotheken, die sie verwenden.

  • sqlite3— Instrument SQLite-Clients.

  • mysql-connector-python— Instrument MySQL-Clients.

  • pg8000— Instrument Pure-Python PostgreSQL-Schnittstelle.

  • psycopg2— Instrument PostgreSQL-Datenbankadapter.

  • pymongo— Instrument MongoDB-Clients.

  • pymysql— Instrument PyMy SQL-basierte Clients für MySQL und MariaDB.

Wenn Sie eine gepatchte Bibliothek verwenden, erstellt das X-Ray SDK für Python ein Untersegment für den Aufruf und zeichnet Informationen aus der Anfrage und Antwort auf. Für das SDK muss ein Segment zur Verfügung stehen, damit es ein Untersegment aus der SDK-Middleware oder aus AWS Lambda erstellen kann.

Anmerkung

Wenn Sie SQLAlchemy ORM verwenden, können Sie Ihre SQL-Abfragen instrumentieren, indem Sie die SDK-Version der Sitzungs- und Abfrageklassen von SQLAlchemy importieren. Anweisungen hierzu finden Sie unter Verwenden von SQLAlchemy ORM.

Um alle verfügbaren Bibliotheken zu patchen, verwenden Sie die patch_all-Funktion in aws_xray_sdk.core. Einige Bibliotheken, wie z. B. httplib und urllib, müssen möglicherweise doppelte Patches durch Aufruf von patch_all(double_patch=True) aktivieren.

Beispiel main.py — Patchen Sie alle unterstützten Bibliotheken
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()

Rufen Sie zum Patchen einer einzelnen Bibliothek patch mit einem Tupel des Bibliotheksnamens auf. Um dies zu erreichen, müssen Sie eine einzelne Elementliste bereitstellen.

Beispiel main.py — Patchen Sie spezifische Bibliotheken
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)
Anmerkung

In einigen Fällen stimmt der Schlüssel, mit dem Sie eine Bibliothek patchen, nicht mit dem Namen der Bibliothek überein. Einige Schlüssel dienen als Aliase für eine oder mehrere Bibliotheken.

Aliase für Bibliotheken

Ablaufverfolgungskontext für asynchrone Vorgänge

Für asyncio integrierte Bibliotheken oder um Untersegmente für asynchrone Funktionen zu erstellen, müssen Sie das X-Ray SDK für Python auch mit einem asynchronen Kontext konfigurieren. Importieren Sie die AsyncContext Klasse und übergeben Sie eine Instanz davon an den Rekorder. X-Ray

Anmerkung

Bibliotheken für die Unterstützung von Web-Frameworks, wie beispielsweise AIOHTTP, werden nicht über das Modul aws_xray_sdk.core.patcher bearbeitet. Sie werden nicht im patcher-Katalog unterstützter Bibliotheken angezeigt.

Beispiel 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)