Instrumentación de su solicitud para AWS X-Ray - 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.

Instrumentación de su solicitud para AWS X-Ray

La instrumentación de una aplicación implica el envío de datos de rastro para solicitudes entrantes y salientes y otros eventos de la aplicación junto con los metadatos de cada solicitud. Hay varias opciones de instrumentación entre las que puede elegir o que puede combinar, en función de sus requisitos particulares:

  • Instrumentación automática: instrumente su aplicación sin cambios de código, normalmente mediante cambios de configuración, añadiendo un agente de instrumentación automática u otros mecanismos.

  • Instrumentación de biblioteca: realice cambios mínimos en el código de la aplicación para agregar instrumentación prediseñada destinada a bibliotecas o marcos específicos, como el AWS SDK, los clientes HTTP de Apache o los clientes SQL.

  • Instrumentación manual: añada código de instrumentación a su aplicación en cada ubicación a la que desee enviar la información de rastro.

Existen varios SDK, agentes y herramientas que puede utilizar para instrumentar su aplicación para rastreo de X-Ray.

Instrumente su aplicación con la distribución para AWS OpenTelemetry

The AWS Distro for OpenTelemetry (ADOT) es una AWS distribución basada en el proyecto Cloud Native Computing Foundation (CNCF). OpenTelemetry OpenTelemetry proporciona un conjunto único de API, bibliotecas y agentes de código abierto para recopilar rastreos y métricas distribuidos. Este kit de herramientas es una distribución de OpenTelemetry componentes originales que incluye SDK, agentes de autoinstrumentación y recopiladores que se prueban, optimizan, protegen y respaldan. AWS

Con ADOT, los ingenieros pueden instrumentar sus aplicaciones una vez y enviar métricas y rastreos correlacionados a múltiples soluciones de AWS monitoreo CloudWatch AWS X-Ray, incluidas Amazon y Amazon OpenSearch Service.

El uso de X-Ray con ADOT requiere dos componentes: un OpenTelemetry SDK habilitado para su uso con X-Ray y una AWS Distro for OpenTelemetry Collector habilitada para su uso con X-Ray. Para obtener más información sobre el uso de la AWS distribución OpenTelemetry con AWS X-Ray y otros Servicios de AWS, consulte la documentación de la AWS distribución. OpenTelemetry

Para obtener más información sobre el soporte y el uso de idiomas, consulta AWS Observabilidad en. GitHub

nota

Ahora puede usar el CloudWatch agente para recopilar métricas, registros y seguimientos de las instancias de Amazon EC2 y de los servidores locales. CloudWatch La versión 1.300025.0 del agente y posteriores puede recopilar trazas de los SDK de nuestros clientes de OpenTelemetryX-Ray y enviarlas a X-Ray. Utilizar el CloudWatch agente en lugar del Collector AWS Distro for OpenTelemetry (ADOT) o el daemon X-Ray para recopilar trazas puede ayudarle a reducir la cantidad de agentes que administra. Consulte el tema sobre los CloudWatch agentes en la Guía del CloudWatch usuario para obtener más información.

ADOT incluye lo siguiente:

Actualmente, ADOT admite la instrumentación automática para Java y Python. Además, ADOT permite la instrumentación automática de las funciones de AWS Lambda y sus solicitudes posteriores mediante tiempos de ejecución de Java, Node.js y Python, mediante capas Lambda gestionadas por ADOT.

Los SDK de ADOT para Java y Go admiten las reglas de muestreo centralizado de X-Ray. Si necesita soporte para las reglas de muestreo de X-Ray en otros idiomas, considere la posibilidad de usar un AWS X-Ray SDK.

nota

Ahora puede enviar identificadores de rastro que se ajustan a la especificación de W3C a X-Ray. De forma predeterminada, las trazas que se crean OpenTelemetry tienen un formato de ID de traza que se basa en la especificación del contexto de rastreo del W3C. Este formato es diferente del de los identificadores de rastreo que se crean con un SDK de X-Ray o mediante AWS servicios integrados con X-Ray. Para garantizar que X-Ray acepte los identificadores de rastreo en formato W3C, debe usar la versión 0.86.0 o posterior de AWS X-Ray Exporter, que se incluye en la versión 0.34.0 y posteriores de ADOT Collector. Las versiones anteriores del exportador validan las marcas de tiempo de los identificadores de rastreo, lo que puede provocar el rechazo de los identificadores de rastreo del W3C.

Instrumentación de su aplicación con SDK de AWS X-Ray

AWS X-Ray incluye un conjunto de SDK específicos para cada idioma para instrumentar su aplicación y enviar trazas a X-Ray. Cada SDK de X-Ray proporciona lo siguiente:

  • Interceptadores que añadir a su código para rastrear solicitudes HTTP entrantes

  • Controladores de clientes para instrumentar los clientes del AWS SDK que tu aplicación utiliza para llamar a otros Servicios de AWS

  • Un cliente HTTP para instrumentar llamadas a servicios web HTTP internos y externos

Los SDK de X-Ray también admiten llamadas de instrumentación a bases de datos SQL, instrumentación automática de clientes de AWS SDK y otras funciones. En lugar de enviar los datos de rastro directamente a X-Ray, el SDK envía documentos de segmento JSON a un proceso del daemon que escucha el tráfico UDP. El daemon de X-Ray almacena en búfer segmentos en una cola y los carga en X-Ray en lotes.

Se proporcionan los siguientes SDK específicos para cada lenguaje:

Actualmente, X-Ray admite la instrumentación automática para Java.

Cómo elegir entre los AWS SDK Distro for OpenTelemetry y X-Ray

Los SDK de X-Ray son parte de una solución de instrumentación estrechamente integrada que ofrece AWS. El AWS Distro for OpenTelemetry forma parte de una solución industrial más amplia en la que X-Ray es solo una de las muchas soluciones de rastreo. Puede implementar el end-to-end rastreo en X-Ray utilizando cualquiera de los dos enfoques, pero es importante entender las diferencias para determinar cuál es el enfoque más útil para usted.

Le recomendamos que equipe su aplicación con la AWS Distro OpenTelemetry si necesita lo siguiente:

  • La posibilidad de enviar trazas a varios backends de rastreo diferentes sin tener que volver a instrumentar el código

  • Support para una gran cantidad de instrumentaciones bibliotecarias para cada idioma, mantenidas por la comunidad OpenTelemetry

  • Capas de Lambda completamente administradas que empaquetan todo lo necesario para recopilar datos de telemetría sin necesidad de cambios de código al usar Java, Python o Node.js

    nota

    AWS Distro for OpenTelemetry ofrece una experiencia de inicio más sencilla para instrumentar las funciones de Lambda. Sin embargo, debido a la flexibilidad que OpenTelemetry ofrece, la función Lambda requerirá memoria adicional y las invocaciones pueden experimentar un aumento de la latencia de arranque en frío, lo que puede generar cargos adicionales. Si está optimizando para una baja latencia y no necesita capacidades avanzadas, como destinos OpenTelemetry de back-end configurables de forma dinámica, puede utilizar el SDK de AWS X-Ray para instrumentar su aplicación.

Le recomendamos que elija un SDK de X-Ray para instrumentar su aplicación si necesita lo siguiente:

  • Una solución de un solo proveedor perfectamente integrada

  • Integración en reglas de muestreo centralizadas de X-Ray, incluida la capacidad de configurar las reglas de muestreo desde la consola de X-Ray y utilizarlas automáticamente en varios hosts, al utilizar Node.js, Python, Ruby o .NET