Correction des bibliothèques pour instrumenter les appels en aval - AWS X-Ray

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Correction des bibliothèques pour instrumenter les appels en aval

Pour instrumenter les appels en aval, utilisez le SDK X-Ray pour Python afin de patcher les bibliothèques utilisées par votre application. Le SDK X-Ray pour Python peut appliquer des correctifs aux bibliothèques suivantes.

Bibliothèques prises en charge
  • botocore,boto3— InstrumentAWS SDK for Python (Boto)clients.

  • pynamodb— Version du client Amazon DynamoDB de l'instrument PynamoDB.

  • aiobotocore,aioboto3— Instrumentasyncio-versions intégrées du SDK pour les clients Python.

  • requests,aiohttp— Instrument des clients HTTP de haut niveau.

  • httplib,http.client— Instruisez les clients HTTP de bas niveau et les bibliothèques de niveau supérieur qui les utilisent.

  • sqlite3— Clients SQLite d'instruments.

  • mysql-connector-python— Clients MySQL d'instruments.

  • pg8000— Interface PostgreSQL en Python pur de l'instrument.

  • psycopg2— Adaptateur de base de données PostgreSQL d'instrument.

  • pymongo— Instrument les clients MongoDB.

  • pymysql— InstrumentPyMyClients basés sur SQL pour MySQL et MariaDB.

Lorsque vous utilisez une bibliothèque patchée, le SDK X-Ray pour Python crée un sous-segment pour l'appel et enregistre les informations issues de la demande et de la réponse. Un segment doit être disponible pour que le kit SDK puisse créer le sous-segment à partir de l'intergiciel SDK ou d'AWS Lambda.

Note

Si vous utilisez SQLAlchemy ORM, vous pouvez instrumenter vos requêtes SQL en important la version du kit SDK de classes de session et de requête SQLAlchemy. Consultez Use SQLAlchemy ORM pour obtenir des instructions.

Pour corriger toutes les bibliothèques disponibles, utilisez la fonction patch_all dans aws_xray_sdk.core. Certaines bibliothèques, telles que httplib et urllib, peuvent avoir besoin d'activer la double application de correctifs en appelant patch_all(double_patch=True).

Exemple main.py — Corrige toutes les bibliothèques prises en charge
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()

Pour corriger une seule bibliothèque, appelez le patch selon un tuple du nom de la bibliothèque. Pour ce faire, vous devrez fournir une liste d'éléments unique.

Exemple main.py — Bibliothèques spécifiques aux correctifs
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)
Note

Dans certains cas, la clé que vous utilisez pour corriger une bibliothèque ne correspond pas au nom de la bibliothèque. Certaines clés tiennent lieu d'alias pour une ou plusieurs bibliothèques.

Alias de bibliothèques

Suivi du contexte pour le travail asynchrone

Pourasynciobibliothèques intégrées, ou pourcréer des sous-segments pour les fonctions asynchrones, vous devez également configurer le SDK X-Ray pour Python avec un contexte asynchrone. Importez leAsyncContextclasse et transmettez-en une instance à l'enregistreur X-Ray.

Note

Les bibliothèques de support de l'infrastructure web, comme AIOHTTP, ne sont pas traitées via le module aws_xray_sdk.core.patcher. Elles n'apparaîtront pas dans le catalogue patcher des bibliothèques prises en charge.

Exemple main.py — Correctif 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)