As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Aplicar patches a bibliotecas para instrumentar chamadas subsequentes
Para instrumentar chamadas subsequentes, use o X-Ray SDK para Python para aplicar patches às bibliotecas usadas pela aplicação. O X-Ray SDK para Python pode corrigir as bibliotecas a seguir.
Bibliotecas compatíveis
-
botocore
,boto3
: instrumentar clientes do AWS SDK for Python (Boto). -
pynamodb
: instrumentar a versão do PynamoDB de clientes do Amazon DynamoDB. -
aiobotocore
,aioboto3
: instrumentar as versões integradas ao asynciode clientes do SDK para Python. -
requests
,aiohttp
: instrumentar clientes HTTP de nível superior. -
httplib
,http.client
: instrumentar clientes HTTP de nível inferior e as bibliotecas de nível superior que os utilizam. -
sqlite3
: instrumentar clientes do SQLite. -
mysql-connector-python
: instrumentar clientes do MySQL. -
pg8000
: instrumentar a interface PostgreSQL Pure-Python. -
psycopg2
: instrumentar o adaptador de banco de dados PostgreSQL. -
pymongo
: instrumentar clientes do MongoDB. -
pymysql
: instrumentar clientes baseados em PyMySQL para MySQL e MariaDB.
Quando você usa uma biblioteca com patches aplicados, o X-Ray SDK para Python cria um subsegmento para a chamada e grava informações da solicitação e da resposta. Um segmento deve estar disponível para o SDK para criar o subsegmento, no middleware do SDK ou no AWS Lambda.
nota
Se você usar o SQLAlchemy ORM, poderá instrumentar suas consultas SQL importando a versão para SDK da sessão e das classes de consulta do SQLAlchemy. Consulte Como usar o SQLAlchemy ORM
Para aplicar patch a todas as bibliotecas disponíveis, use a função patch_all
em aws_xray_sdk.core
. Algumas bibliotecas, como httplib
e urllib
, podem precisar habilitar a aplicação de patch dupla chamando patch_all(double_patch=True)
.
exemplo main.py: aplicar patch a todas as bibliotecas compatíveis
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 um patch a uma única biblioteca, chame patch
com uma tupla do nome da biblioteca. Para isso, você precisará fornecer uma única lista de elementos.
exemplo main.py: aplicar patch 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
Em alguns casos, a chave que você usa para aplicar um patch a uma biblioteca não corresponde ao nome da biblioteca. Algumas chaves servem como aliases para uma ou mais bibliotecas.
Aliases de bibliotecas
-
httplib
:httplib
ehttp.client
-
mysql
–mysql-connector-python
Rastrear contexto para trabalhos assíncronos
Para bibliotecas integradas asyncio
ou para criar subsegmentos para funções assíncronas, você também deve configurar o X-Ray SDK para Python com um contexto assíncrono. Importe a classe AsyncContext
e passe um exemplo dela para o gravador do X-Ray.
nota
As bibliotecas de suporte a framework da Web, como AIOHTTP, não são tratadas pelo módulo aws_xray_sdk.core.patcher
. Elas não serão exibidas no catálogo de patcher
de bibliotecas com suporte.
exemplo main.py: aplicar patch 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)