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

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

Bibliotecas compatibles
  • botocore, boto3: instrumente clientes de AWS SDK for Python (Boto).

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

  • aiobotocore, aioboto3: instrumente las versiones integradas en asyncio de los clientes del SDK para Python.

  • 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: instrumente la interfaz PostgreSQL Pure-Python.

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

  • pymongo: instrumente clientes de MongoDB.

  • pymysql: instrumente clientes basados en PyMySQL para MySQL y MariaDB.

Al utilizar una biblioteca con parches, el SDK de X-Ray para Python crea un subsegmento para la llamada y registra información desde 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

Para las bibliotecas integradas de asyncio o para crear subsegmentos para funciones asíncronas, también debe configurar el SDK de X-Ray para Python con un contexto asíncrono. Importe la clase AsyncContext y pase una instancia de ella a la grabadora de 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)