Preguntas frecuentes acerca de AWS X-Ray

Aspectos generales

AWS X-Ray ayuda a los desarrolladores a analizar y depurar aplicaciones distribuidas de producción, como las creadas con una arquitectura de microservicios. Con X-Ray, puede saber cuál es el nivel de rendimiento de su aplicación y sus servicios subyacentes para identificar y resolver la causa raíz de los problemas y errores de rendimiento. X-Ray proporciona una vista completa de las solicitudes a medida que avanzan por su aplicación y le muestra un mapa de los componentes subyacentes de la aplicación. Puede utilizar X-Ray para analizar aplicaciones en desarrollo y en producción, desde aplicaciones sencillas de tres capas hasta aplicaciones de microservicios complejas compuestas por miles de servicios.

Actualmente, si crea y ejecuta aplicaciones distribuidas, tiene que confiar en un proceso por servicio o por recurso para rastrear solicitudes para su aplicación a medida que avanzan por los distintos componentes que conforman la aplicación. Este problema se complica aún más por los distintos formatos de log y medios de almacenamiento en los marcos, servicios y recursos que utiliza o en los que se ejecuta la aplicación. Esto dificulta la correlación de los distintos fragmentos de datos y crea una imagen integral de una solicitud desde el momento en que se origina en el usuario final o el servicio hasta que la aplicación devuelve una respuesta. X-Ray proporciona un modelo centrado en el usuario, en vez de un modelo centrado en los servicios o en los recursos, para recopilar datos relacionados con las solicitudes realizadas por la aplicación. Este modelo le permite crear una imagen centrada en el usuario de las solicitudes a medida que avanzan por los servicios y recursos. Al correlacionar y agregar datos en su nombre, X-Ray le permite centrarse en mejorar la experiencia de los usuarios finales de su aplicación.

X-Ray le facilita las siguientes tareas:

  • Crear un mapa de servicios: cuando rastrea las solicitudes realizadas en sus aplicaciones, X-Ray puede crear un mapa de los servicios utilizados por su aplicación. Esto le proporciona una vista de las conexiones entre servicios en su aplicación, y le permite crear un árbol de dependencias, detectar latencia o errores al trabajar en distintas regiones o zonas de disponibilidad de AWS, anular los servicios que no funcionan según lo esperado, etcétera.
  • Identificar errores y fallos: X-Ray puede resaltar automáticamente fallos o errores en el código de su aplicación analizando el código de respuesta de cada solicitud realizada en su aplicación. Esto permite una depuración sencilla del código de aplicación sin necesidad de reproducir el fallo o error.
  • Crear sus propias aplicaciones de análisis y visualización: X-Ray proporciona un conjunto de API de consulta que puede usar para crear sus propias aplicaciones de análisis y visualización que utilizan los datos que X-Ray registra.

Conceptos básicos

Un rastro de X-Ray es un conjunto de puntos de datos que comparten el mismo ID de rastro. Por ejemplo, cuando un cliente realiza una solicitud en su aplicación, se le asigna un ID de rastro único. A medida que la solicitud avanza por los servicios de su aplicación, los servicios retransmiten información relacionada con la solicitud hacia X-Ray usando este ID de rastro único. El fragmento de información retransmitido por cada servicio de su aplicación a X-Ray es un segmento, y un rastro es una recopilación de segmentos.

Un segmento de X-Ray engloba todos los puntos de datos para un componente único (por ejemplo, un servicio de autorización) de la aplicación distribuida. Los segmentos incluyen datos definidos por el sistema y por los usuarios con formato de anotaciones y se componen de uno o más subsegmentos que representan llamadas remotas realizadas desde el servicio. Por ejemplo, cuando la aplicación realiza una llamada a una base de datos en respuesta a una solicitud, crea un segmento para esa solicitud con un subsegmento que representa la llamada a la base de datos y su resultado. El subsegmento puede contener datos como la consulta, la tabla utilizada, la marca temporal y el estado de error.

Una anotación de X-Ray se compone de datos definidos por el sistema o por los usuarios asociados con un segmento. Un segmento puede contener varias anotaciones. Las anotaciones definidas por el sistema incluyen datos agregados al segmento por servicios de AWS, mientras que las anotaciones definidas por los usuarios son metadatos agregados a un segmento por un desarrollador. Por ejemplo, un segmento creado por su aplicación se puede introducir automáticamente con datos de región para llamadas de servicio de AWS, mientras que podría decidir agregar datos de región usted mismo para llamadas realizadas a servicios que no son de AWS.

Los errores de X-Ray son anotaciones del sistema asociadas con un segmento para una llamada que genera una respuesta de error. El error incluye el mensaje de error, el rastro de pila y cualquier otra información adicional (por ejemplo, versión o ID de confirmación) para asociar el error con un archivo de origen.

Para proporcionar una experiencia eficaz y rentable, X-Ray no recopila datos para cada solicitud que se envía a una aplicación. En su lugar, recopila datos para un número estadísticamente significativo de solicitudes. X-Ray no debería utilizarse como una herramienta de auditoría o conformidad porque no garantiza la integridad de los datos.

El agente de X-Ray daemon recopila trazas y las envía al servicio de X-Ray para la agregación, el análisis y el almacenamiento. El daemon facilita el envío de datos al servicio de X-Ray, en lugar de utilizar las API directamente.

Uso de AWS X-Ray

Puede comenzar a utilizar X-Ray incluyendo el SDK para lenguaje de X-Ray en su aplicación e instalando el agente de X-Ray daemon. Para obtener más información, consulte la Guía del usuario de X-Ray.

X-Ray se puede usar con aplicaciones distribuidas de cualquier tamaño para rastrear y depurar solicitudes síncronas y eventos asíncronos. Por ejemplo, X-Ray se puede usar para rastrear solicitudes web realizadas en una aplicación web o eventos asíncronos que utilizan colas de Amazon SQS.

Puede usar X-Ray con aplicaciones que se ejecutan en EC2, ECS, Lambda, Amazon SQS, Amazon SNS y Elastic Beanstalk. Además, el SDK para X-Ray captura automáticamente metadatos para llamadas al API realizadas en servicios de AWS mediante el AWS SDK. Por otra parte, el SDK para X-Ray proporciona complementos para controladores de MySQL y PostgreSQL.

Si utiliza Elastic Beanstalk, deberá incluir las bibliotecas de X-Ray específicas de lenguaje en el código de su aplicación. Para aplicaciones que se ejecutan en otros servicios de AWS, como EC2 o ECS, deberá instalar el agente de X-Ray daemon e instrumentar el código de su aplicación.

Sí, X-Ray proporciona un conjunto de API para incorporar datos de solicitud, consultar rastros y configurar el servicio. Puede utilizar el API de X-Ray para crear aplicaciones de análisis y visualización además de las proporcionadas por X-Ray.

Sí. X-Ray registra todas las llamadas a la API como eventos de administración. También registra las llamadas a los rastros como eventos de datos, incluso en PutTraceSegments y GetTimeSeriesServiceStatistics, entre otras API. Los eventos de datos no se registran de forma predeterminada. Para registrar eventos de datos, debe configurar su registro de datos de eventos o rutas de CloudTrail para recopilarlos.

Regiones

Consulte productos y servicios regionales para obtener más detalles.

Sí, puede usar X-Ray para rastrear solicitudes que avanzan por las aplicaciones o servicios en varias regiones. Los datos de X-Ray se almacenan localmente en la región procesada, pero con suficiente información para permitir que las aplicaciones de cliente combinen los datos y proporcionen una vista global de los rastros. La anotación de regiones para servicios de AWS se agregará automáticamente; sin embargo, los clientes deberán instrumentar servicios personalizados para agregar la anotación regional y utilizar el soporte entre regiones.

Gestión de datos

Los datos de rastro enviados a X-Ray normalmente se pueden recuperar y filtrar menos de 30 segundos después de que los reciba el servicio.

X-Ray almacena los datos de rastro de los últimos 30 días. Esto le permite consultar datos de rastro con una antigüedad de 30 días.

X-Ray hace todos los esfuerzos posibles por presentar información de rastro completa. Sin embargo, en algunas situaciones (problemas de conectividad, retraso en la recepción de segmentos, etcétera) es posible que la información de rastro proporcionada por las API de X-Ray sea parcial. En tales situaciones, X-Ray etiqueta los rastros como incompletos o parciales.

Sí, el agente de X-Ray daemon puede asumir un rol para publicar datos en una cuenta distinta de la cuenta en la que se ejecuta. Esto le permite publicar datos desde distintos componentes de su aplicación en una cuenta central.