AWS X-Ray SDK para Python - 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.

AWS X-Ray SDK para Python

X-Ray SDK para Python es una biblioteca para aplicaciones web de Python que proporciona clases y métodos para generar y enviar datos de rastreo al daemon X-Ray. Los datos de rastreo incluyen información sobre HTTP las solicitudes entrantes atendidas por la aplicación y las llamadas que la aplicación realiza a los servicios descendentes mediante los AWS SDK HTTP clientes o un conector de SQL base de datos. También puede crear segmentos de forma manual y agregar información de depuración en anotaciones y metadatos.

Puede descargarlos SDK conpip.

$ pip install aws-xray-sdk
nota

The X-Ray SDK para Python es un proyecto de código abierto. Puedes seguir el proyecto y enviar ediciones y solicitudes de cambios en GitHub: github.com/aws/ aws-xray-sdk-python

Si utilizas Django o Flask, empieza por añadir el middleware a tu aplicación para rastrear las SDK solicitudes entrantes. El middleware crea un segmento para cada solicitud rastreada y lo completa cuando se envía la respuesta. Mientras el segmento esté abierto, puedes usar los métodos del SDK cliente para añadir información al segmento y crear subsegmentos para rastrear las llamadas posteriores. SDKTambién registra automáticamente las excepciones que la aplicación lanza mientras el segmento está abierto. Para otras aplicaciones, puede crear segmentos manualmente.

En el caso de las funciones de Lambda llamadas por una aplicación o un servicio instrumentados, Lambda lee el encabezado de rastreo y rastrea automáticamente las solicitudes muestreadas. Para otras funciones, puede configurar Lambda con el fin de muestrear y rastrear las solicitudes entrantes. En cualquier caso, Lambda crea el segmento y lo proporciona al X-Ray. SDK

nota

En Lambda, el X-Ray SDK es opcional. Si no lo usa en su función, el mapa de servicio seguirá incluyendo un nodo para el servicio de Lambda y uno para cada función de Lambda. Al añadir elSDK, puede instrumentar el código de función para añadir subsegmentos al segmento de función registrado por Lambda. Para obtener más información, consulte AWS Lambda y AWS X-Ray.

Consulte Entorno de trabajo para ver un ejemplo de una función de Python instrumentada en Lambda.

Luego, usa X-Ray SDK para Python para instrumentar las llamadas posteriores parcheando las bibliotecas de tu aplicación. SDKEs compatible con 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 de instrumentos asíncronos para clientes de SDK Python.

  • requests, aiohttp — Clientes de alto nivel de Instrument. HTTP

  • httplib, http.client— Instrumente HTTP los clientes de bajo nivel y las bibliotecas de nivel superior que los utilizan.

  • sqlite3: instrumente clientes de SQLite.

  • mysql-connector-python— Instrumenta a mis SQL clientes.

  • pg8000— Interfaz SQL Postgre Pure-Python de Instrument.

  • psycopg2— Adaptador de base de datos Postgre para instrumentos. SQL

  • pymongo: instrumente clientes de MongoDB.

  • pymysql— Clientes PyMy SQL basados en instrumentos para My SQL y MariaDB.

Cada vez que su aplicación realiza llamadas a AWS una SQL base de datos u otros HTTP servicios, SDK registra la información sobre la llamada en un subsegmento. Servicios de AWS y los recursos a los que accedes desde los servicios aparecen como nodos descendentes en el mapa de rastreo para ayudarte a identificar los errores y los problemas de limitación en las conexiones individuales.

Cuando empiece a utilizar elSDK, personalice su comportamiento configurando la grabadora y el middleware. Puede añadir complementos para registrar los datos sobre los recursos informáticos que ejecutan la aplicación, personalizar el comportamiento del muestreo mediante la definición de reglas de muestreo y configurar el nivel de registro para ver más o menos información de los SDK registros de la aplicación.

Registre información adicional acerca de las solicitudes y el trabajo que la aplicación realiza en anotaciones y metadatos. Las anotaciones son pares sencillos de clave-valor que se indexan para su uso con expresiones de filtro para poder buscar rastros que contengan datos específicos. Las entradas de metadatos son menos restrictivas y pueden registrar objetos y matrices completos, es decir, cualquier elemento en el que se pueda serializar. JSON

Anotaciones y metadatos

Las anotaciones y los metadatos son texto arbitrario que se añade a los segmentos con el X-RaySDK. Las anotaciones se indexan para su uso con expresiones de filtro. Los metadatos no están indexados, pero se pueden ver en el segmento sin procesar con la consola X-Ray oAPI. Cualquier persona a la que conceda acceso de lectura a X-Ray puede ver estos datos.

Cuando tenga muchos clientes instrumentados en su código, un único segmento de solicitud puede contener un gran número de subsegmentos, uno para cada llamada realizada con un cliente instrumentado. Puede organizar y agrupar los subsegmentos incluyendo las llamadas del cliente en subsegmentos personalizados. Puede crear un subsegmento personalizado para toda una función o cualquier sección de código. A continuación, puede registrar metadatos y anotaciones en el subsegmento en lugar de escribir todo en el segmento principal.

Para obtener documentación de referencia sobre SDK las clases y los métodos, consulte la APIReferencia AWS X-Ray SDK de Python.

Requisitos

X-Ray SDK para Python es compatible con las siguientes versiones de lenguaje y biblioteca.

  • Python: 2.7, 3.4 y posteriores

  • Django: 1.10 y posteriores

  • Flask: 0.10 y posteriores

  • aiohttp: 2.3.0 y posteriores

  • AWS SDK for Python (Boto): 1.4.0 y posteriores

  • botocore: 1.5.0 y posteriores

  • enum: 0.4.7 y posteriores, para Python 3.4.0 y anteriores

  • jsonpickle: 1.0.0 y posteriores

  • setuptools: 40.6.3 y posteriores

  • wrapt: 1.11.0 y posteriores

Administración de dependencias

El X-Ray SDK para Python está disponible enpip.

  • Paquete: aws-xray-sdk

Añada la SDK como una dependencia en su requirements.txt archivo.

ejemplo requirements.txt
aws-xray-sdk==2.4.2 boto3==1.4.4 botocore==1.5.55 Django==1.11.3

Si utiliza Elastic Beanstalk para implementar su aplicación, Elastic Beanstalk instala todos los paquetes en requirements.txt de forma automática.