View a markdown version of this page

Aplicar patches a bibliotecas para instrumentar chamadas downstream - AWS X-Ray

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 downstream

nota

X-Ray SDK/Daemon Aviso de manutenção — Em 25 de fevereiro de 2026, eles AWS X-Ray SDKs/Daemon entrarão no modo de manutenção, onde AWS limitarão as versões do X-Ray SDK e do Daemon para resolver apenas problemas de segurança. Para obter mais informações sobre a linha do tempo do suporte, consulte Cronograma de suporte do X-Ray SDK e do Daemon Support. Recomendamos migrar para o. OpenTelemetry Para obter mais informações sobre a migração para OpenTelemetry, consulte Migração da X-Ray instrumentação para a instrumentação. OpenTelemetry

Para instrumentar chamadas downstream, use o X-Ray SDK para Python para corrigir as bibliotecas que seu aplicativo usa. O X-Ray SDK para Python pode corrigir as seguintes bibliotecas.

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

  • pynamodb: instrumentar a versão do PynamoDB de clientes do Amazon DynamoDB.

  • aiobotocore, aioboto3 — Instrument asyncio - versões integradas do SDK para clientes Python (Boto3).

  • 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— Interface Pure-Python PostgreSQL do instrumento.

  • psycopg2: instrumentar o adaptador de banco de dados PostgreSQL.

  • pymongo: instrumentar clientes do MongoDB.

  • pymysql— Clientes baseados em PyMy SQL do Instrument para MySQL e MariaDB.

Quando você usa uma biblioteca corrigida, o X-Ray SDK para Python cria um subsegmento para a chamada e registra as 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 obter instruções.

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

Rastrear contexto para trabalhos assíncronos

Para bibliotecas asyncio integradas 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 AsyncContext classe e passe uma instância dela para o X-Ray gravador.

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)