View a markdown version of this page

Aplicación de parches a bibliotecas para instrumentar llamadas posteriores - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aplicación de parches a bibliotecas para instrumentar llamadas posteriores

nota

X-Ray SDK/Daemon Aviso de mantenimiento: el 25 de febrero de 2026, AWS X-Ray SDKs/Daemon entrarán en modo de mantenimiento, donde AWS se limitarán las versiones de X-Ray SDK y Daemon a problemas de seguridad únicamente. Para obtener más información sobre la cronología del soporte, consulte Cronología de X-Ray SDK y Daemon Support. Recomendamos migrar a. OpenTelemetry Para obtener más información sobre la migración a OpenTelemetry, consulte Migración de una X-Ray instrumentación a otra. OpenTelemetry

Para instrumentar las llamadas posteriores, usa el X-Ray SDK para Python a fin de aplicar parches a las bibliotecas que usa tu aplicación. El X-Ray SDK para Python puede aplicar parches a las siguientes bibliotecas.

Bibliotecas compatibles
  • botocore, boto3 — AWS SDK for Python (Boto) Clientes de instrumentos.

  • pynamodb: instrumente la versión de PynamoDB del cliente de Amazon DynamoDB.

  • aiobotocore, aioboto3 — Versiones integradas en instrument asyncio del SDK para clientes de Python (Boto3).

  • requests, aiohttp: instrumente clientes HTTP de alto nivel.

  • httplib, http.client: instrumente los clientes HTTP de bajo nivel y las bibliotecas de más alto nivel que los utilizan.

  • sqlite3: instrumente los clientes de SQLite.

  • mysql-connector-python: instrumente los clientes de MySQL.

  • pg8000— Interfaz PostgreSQL del Pure-Python instrumento.

  • psycopg2: instrumente el adaptador de base de datos PostgreSQL.

  • pymongo: instrumente clientes de MongoDB.

  • pymysql— Clientes instrumentados basados en PyMy SQL para MySQL y MariaDB.

Cuando utilizas una biblioteca parcheada, el X-Ray SDK para Python crea un subsegmento para la llamada y registra la información de la solicitud y la respuesta. Debe haber un segmento disponible para que el SDK cree el subsegmento, ya sea desde el middleware del SDK o desde AWS Lambda.

nota

Si utiliza el ORM de SQLAlchemy, puede instrumentar sus consultas SQL importando la versión del SDK de la sesión y las clases de consulta de SQLAlchemy. Consulte Use ORM SQLAlchemy para obtener instrucciones.

Para aplicar parches a todas las bibliotecas disponibles, utilice la función patch_all en aws_xray_sdk.core. Es posible que algunas bibliotecas, como httplib y urllib, necesiten habilitar la aplicación de parches dobles llamando a patch_all(double_patch=True).

ejemplo main.py: aplique parches a todas las bibliotecas compatibles
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()

Para aplicar parches a una sola biblioteca, llame a patch con una tupla del nombre de la biblioteca. Para ello, deberá proporcionar una sola lista de elementos.

ejemplo main.py: aplique parches a bibliotecas específicas
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

En algunos casos, la clave que se utiliza aplicar parches a una biblioteca no coincide con el nombre de la biblioteca. Algunas claves sirven como alias para una o varias bibliotecas.

Alias de las bibliotecas

Seguimiento del contexto para el funcionamiento asíncrono

En el caso de las bibliotecas asyncio integradas o para crear subsegmentos para funciones asíncronas, también debes configurar el X-Ray SDK para Python con un contexto asíncrono. Importe la AsyncContext clase y pase una instancia de la misma a la grabadora. X-Ray

nota

Las bibliotecas compatibles con el marco de trabajo web, como AIOHTTP, no se gestionan a través del módulo aws_xray_sdk.core.patcher. No aparecerán en el catálogo de bibliotecas admitidas depatcher.

ejemplo main.py: aplique parches a 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)