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 asynciode los clientes del SDK para Python. -
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 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
-
httplib
:httplib
yhttp.client
-
mysql
–mysql-connector-python
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)