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 conceptos
AWS X-Ray recibe datos de los servicios en forma de segmentos. X-Ray luego agrupa en rastreos los segmentos que tienen una solicitud común. X-Ray procesa los seguimientos para generar un gráfico de servicio que proporciona una representación visual de la aplicación.
Conceptos
Segmentos
Los recursos informáticos en los que se ejecuta la lógica de su aplicación envían datos del trabajo en forma de segmentos. Un segmento incluye el nombre del recurso, detalles de la solicitud y detalles del trabajo realizado. Por ejemplo, cuando una solicitud HTTP llega a la aplicación, puede registrar datos sobre:
-
El host nombre de host, alias o dirección IP
-
La solicitud: método, dirección del cliente, ruta y agente de usuario
-
La respuesta: estado y contenido
-
El trabajo realizado: hora de inicio y finalización y subsegmentos
-
Problemas que se producen: errores, fallos y excepciones, incluida la captura automática de pilas de excepciones.
El X-Ray SDK recopila información de los encabezados de las solicitudes y respuestas, del código de la aplicación y de los metadatos sobre los AWS recursos en los que se ejecuta. Usted elige los datos que desea recopilar modificando la configuración o el código de la aplicación para instrumentar las solicitudes entrantes, las solicitudes posteriores y los clientes del SDK. AWS
Solicitudes reenviadas
Si un balanceador de cargas u otro intermediario reenvía una solicitud a tu aplicación, X-Ray toma la IP del cliente del X-Forwarded-For encabezado de la solicitud en lugar de tomarla de la IP de origen del paquete IP. La IP de cliente que se graba para una solicitud reenviada puede estar falsificada, por lo que no se debe confiar en ella.
Puedes usar el X-Ray SDK para registrar información adicional, como anotaciones y metadatos. Para obtener más información sobre la estructura y la información que se registra en los segmentos y subsegmentos, consulte AWS X-RayDocumentos de segmentos de. Los documentos de segmento pueden tener un tamaño de hasta 64 kB.
Subsegmentos
Un segmento puede desglosar los datos del trabajo realizado en subsegmentos. Los subsegments proporcionan información y detalles más precisos sobre los intervalos de las llamadas posteriores que la aplicación realizó para cumplir la solicitud original. Un subsegmento puede contener detalles adicionales sobre una llamada a una Servicio de AWS API HTTP externa o una base de datos SQL. Puede incluso definir subsegmentos arbitrarios para instrumentar funciones específicas o líneas de código en su aplicación.
En el caso de los servicios que no envían sus propios segmentos, como Amazon DynamoDB, X-Ray utiliza subsegmentos para generar segmentos inferidos y nodos descendentes en el mapa de seguimiento. Esto le permite ver todas sus dependencias posteriores, incluso si no soportan el rastreo o son externas.
Los subsegmentos representan la vista de su aplicación de una llamada posterior como cliente. Si el servicio posterior también está instrumentado, el segmento que envía sustituye al segmento inferido generado desde el subsegmento del cliente principal. El nodo en el gráfico de servicio utiliza siempre información desde el segmento del servicio, si está disponible, mientras que el límite entre los dos nodos utiliza el subsegmento del servicio ascendente.
Por ejemplo, cuando llamas a DynamoDB con un cliente de SDK instrumentado, el AWS SDK registra un subsegmento para esa llamada. X-Ray DynamoDB no envía un segmento, por lo que el segmento inferido en el rastro, el nodo de DynamoDB en el gráfico de servicio y el borde entre su servicio y DynamoDB contienen información del subsegmento.
Si llama a otro servicio instrumentado con una aplicación instrumentada, el servicio posterior envía su propio segmento para registrar su vista de la misma llamada que el servicio ascendente registró en un subsegmento. En el gráfico de servicio, los nodos de ambos servicios contienen información de tiempo y error de los segmentos de dichos servicios, mientras que el límite entre ellos contiene información del subsegmento del servicio ascendente.
Ambos puntos de vista son útiles, ya que el servicio posterior registra precisamente cuándo comenzó y finalizó el trabajo en la solicitud y el servicio ascendente registra la latencia de ida y vuelta, incluido el tiempo que la solicitud ha pasado viajando entre los dos servicios.
Gráfico de servicios
X-Ray usa los datos que envía la aplicación para generar un gráfico de servicio. Cada AWS recurso al que envía datos X-Ray aparece como un servicio en el gráfico. Los límites conectan los servicios que trabajan en equipo para atender solicitudes. Los límites conectan a los clientes con la aplicación, y conectan la aplicación con los servicios y recursos posteriores que esta utiliza.
Nombres de servicio
El name de un segmento debe coincidir con el nombre de dominio o el nombre lógico del servicio que genere el segmento. Sin embargo, este requisito no se exige. Cualquier aplicación que tenga permiso para PutTraceSegments puede enviar segmentos con cualquier nombre.
Un gráfico de servicios es un documento JSON que contiene información acerca de los servicios y recursos que componen la aplicación. La X-Ray consola usa el gráfico de servicios para generar una visualización o un mapa de servicios.
En el caso de una aplicación distribuida, X-Ray combina los nodos de todos los servicios que procesan las solicitudes con el mismo ID de seguimiento en un único gráfico de servicios. El primer servicio al que llega la solicitud añade un encabezado de rastro que se propaga entre el front-end y servicios que a los llama.
Por ejemplo, Scorekeep ejecuta una API web que llama a un microservicio (una AWS Lambda función) para generar un nombre aleatorio mediante una biblioteca. Node.js El X-Ray SDK para Java genera el identificador de seguimiento y lo incluye en las llamadas a Lambda. Lambda envía datos de rastreo y transfiere el ID de rastro a la función. El X-Ray SDK Node.js también usa el identificador de seguimiento para enviar datos. En consecuencia, el mapa de rastros muestra los nodos de la API, el servicio de Lambda y la función de Lambda como nodos independientes pero conectados.
Los datos del gráfico de servicio se conservan durante 30 días.
Rastros
El ID de rastro muestra la ruta que recorre una solicitud en la aplicación. Un registro de seguimiento recopila todos los segmentos que genera una solicitud. La solicitud suele ser una solicitud GET o una solicitud POST de HTTP que viaja a través de un equilibrador de carga, llega a su código de aplicación y genera llamadas posteriores a otros servicios de AWS o API web externas. El primer servicio compatible con el que interactúa la solicitud HTTP le añade un encabezado de ID de rastro, que continúa propagándose para registrar la latencia, la disposición y otros datos que requiere la solicitud.
Consulta AWS X-Ray los precios
Muestreo
Para garantizar un seguimiento eficiente y proporcionar una muestra representativa de las solicitudes que atiende tu aplicación, el X-Ray SDK aplica un algoritmo de muestreo para determinar qué solicitudes se rastrean. De forma predeterminada, el X-Ray SDK registra la primera solicitud cada segundo y el cinco por ciento de las solicitudes adicionales.
Para evitar incurrir en cargos por servicio al empezar, la tasa de muestreo predeterminada es conservadora. Puede configurar X-Ray para modificar la regla de muestreo predeterminada y configurar reglas adicionales que apliquen el muestreo en función de las propiedades del servicio o la solicitud.
Por ejemplo, es posible que desee deshabilitar las solicitudes de muestreo y rastreo completo para las llamadas que modifican el estado o tratar con usuarios o transacciones. Para llamadas de solo lectura de alto volumen, como sondeo en segundo plano, comprobaciones de estado o mantenimiento de conexión, puede muestrear con un bajo índice y seguirá obteniendo datos suficientes para ver los problemas que surjan.
Para obtener más información, consulte Configuración de reglas de muestreo de.
Encabezado de seguimiento
Todas las solicitudes se rastrean hasta alcanzar un mínimo configurable, después de lo cual se rastrea un porcentaje de solicitudes para evitar un costo innecesario. La decisión de muestreo y el ID de rastro se añaden a las solicitudes HTTP en los encabezados de rastreo denominados X-Amzn-Trace-Id. El primer X-Ray-integrated servicio al que llega la solicitud agrega un encabezado de seguimiento, que el X-Ray SDK lee e incluye en la respuesta.
ejemplo Encabezado de rastreo con ID de rastro raíz y decisión de muestreo
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1Seguridad del encabezado de rastreo
Un encabezado de seguimiento puede provenir del X-Ray SDK, de una solicitud Servicio de AWS o de un cliente. Su aplicación puede eliminar el encabezado X-Amzn-Trace-Id en las solicitudes entrantes para evitar los problemas causados por usuarios que agregan ID de rastro o decisiones de muestreo a sus solicitudes.
El encabezado de rastreo también pueden contener un ID de segmento primario si la solicitud se originó a partir de una aplicación instrumentada. Por ejemplo, si tu aplicación llama a una API web HTTP descendente con un cliente HTTP instrumentado, el X-Ray SDK agrega el ID de segmento de la solicitud original al encabezado de seguimiento de la solicitud descendente. Una aplicación instrumentada que atiende la solicitud posterior puede registrar el ID del segmento primario para conectar ambas solicitudes.
ejemplo Encabezado de rastreo con ID de rastro raíz, ID de segmento primario y decisión de muestreo
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1LineageLambda y otros pueden añadirlos al encabezado de seguimiento Servicios de AWS como parte de sus mecanismos de procesamiento, y no deben usarse directamente.
ejemplo Encabezado de rastreo con Lineage
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1;Lineage=25:a87bd80c:1Expresiones de filtro
Aunque se haya realizado un muestreo, una aplicación genera grandes cantidades de datos. La AWS X-Ray consola ofrece una vista fácil de navegar del gráfico de servicio. Allí se muestra información sobre el estado y el rendimiento con la cual se puede identificar problemas y posibilidades de optimización en su aplicación. Cuando se realiza un rastreo avanzado, puede explorar en profundidad en busca de solicitudes individuales, o bien utilizar expresiones de filtro para encontrar rastros relacionados con rutas específicas o usuarios específicos.
Groups
Al ampliar las expresiones de filtro, X-Ray también se admite la función de grupo. Mediante una expresión de filtro, puede definir los criterios para aceptar los rastros en el grupo.
Puede llamar al grupo por su nombre o por el nombre del recurso de Amazon (ARN) para generar su propio gráfico de servicio, resúmenes de seguimiento y métricas de Amazon CloudWatch . Una vez creado un grupo, los seguimientos entrantes se comparan con la expresión de filtro del grupo a medida que se almacenan en el X-Ray servicio. Las métricas del número de rastreos que coinciden con cada criterio se publican CloudWatch cada minuto.
La actualización de la expresión de filtro de un grupo no cambia los datos que ya se han registrado. La actualización se aplica únicamente a los rastros posteriores. Esto puede dar lugar a un gráfico que combina la expresión nueva con la anterior. Para evitarlo, elimine el grupo actual y cree uno nuevo.
nota
Los grupos se facturan por el número de rastros recuperados que coinciden con la expresión de filtro. Para obtener más información, consulte Precios de AWS X-Ray
Para obtener más información acerca de los grupos, consulte Configuración de grupos.
Anotaciones y metadatos
Cuando instrumentas tu aplicación, el X-Ray SDK registra información sobre las solicitudes entrantes y salientes, los AWS recursos utilizados y la propia aplicación. Puede añadir más información al documento de segmento, por ejemplo anotaciones y metadatos. Las anotaciones y los metadatos se agregan en el nivel de seguimiento y se pueden añadir a cualquier segmento o subsegmento.
Las anotaciones son pares de clave-valor que se indexan para usarlos en expresiones de filtro. Utilice anotaciones para registrar los datos que desee utilizar para agrupar rastros en la consola o cuando llame a la API de GetTraceSummaries.
X-Ray indexa hasta 50 anotaciones por seguimiento.
Los metadatos son pares de clave-valor con valores de cualquier tipo, por ejemplo objetos y listas, pero que no se indexan. Utilice los metadatos para registrar los datos que desee almacenar en el rastro, pero que no vaya a usar para buscar rastros.
Puede ver las anotaciones y los metadatos en la ventana de detalles del segmento o subsegmento, dentro de la página de detalles del seguimiento de la consola. CloudWatch
Errores y excepciones
X-Ray rastrea los errores que se producen en el código de la aplicación y los errores que devuelven los servicios posteriores. Los errores se clasifican como se indica a continuación.
-
Error: errores del cliente (errores de la serie 400) -
Fault: errores del servidor (errores de la serie 500) -
Throttle: errores de limitación controlada (429: demasiadas solicitudes)
Cuando se produce una excepción mientras la aplicación atiende una solicitud instrumentada, el X-Ray SDK registra los detalles de la excepción, incluido el seguimiento de la pila, si está disponible. Puedes ver las excepciones en la sección de detalles de los segmentos de la X-Ray consola.