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.
Amazon SQS y AWS X-Ray
AWS X-Ray se integra con Amazon Simple Queue Service (Amazon SQS) para rastrear los mensajes que pasan por una cola de Amazon SQS. Si un servicio rastrea las solicitudes mediante el X-Ray SDK, Amazon SQS puede enviar el encabezado de rastreo y continuar propagando el rastreo original desde el remitente hasta el consumidor con un identificador de seguimiento coherente. Esta continuidad permite que los usuarios puedan rastrear, analizar y depurar en otros servicios posteriores.
AWS X-Ray admite el rastreo de aplicaciones impulsadas por eventos mediante Amazon SQS y. AWS Lambda Utilice la CloudWatch consola para ver una vista conectada de cada solicitud mientras está en cola en Amazon SQS y procesada por una función Lambda posterior. Los rastros de los productores de mensajes anteriores se vinculan automáticamente a los rastros de los nodos de consumidor de Lambda posteriores, lo que crea una vista integral de toda la aplicación. Para obtener más información, consulte Rastreo de aplicaciones basadas en eventos.
Amazon SQS admite la siguiente instrumentación de encabezado de rastreo:
-
Encabezado HTTP predeterminado: el X-Ray SDK rellena automáticamente el encabezado de seguimiento como un encabezado HTTP cuando se llama a Amazon SQS a través del SDK. AWS
X-Amzn-Trace-Idlleva el encabezado de rastro predeterminado y se corresponde con todos los mensajes incluidos en una solicitudSendMessageoSendMessageBatch. Para obtener más información sobre el encabezado HTTP predeterminado, consulte Encabezado de seguimiento. -
AWSTraceHeaderAtributo del sistema:AWSTraceHeaderes un atributo del sistema de mensajes reservado por Amazon SQS para incluir el encabezado de X-Ray seguimiento con los mensajes en cola.AWSTraceHeaderestá disponible incluso cuando la instrumentación automática a través del X-Ray SDK no lo está, por ejemplo, al crear un SDK de rastreo para un idioma nuevo. Cuando se establecen las instrumentaciones de los dos encabezados, el atributo del sistema de mensajes anula el encabezado de rastreo HTTP.
Cuando se ejecuta en Amazon EC2, Amazon SQS solo permite procesar un mensaje cada vez. Esto se aplica cuando se ejecuta en un host local y cuando se utilizan servicios de contenedor, como AWS Fargate Amazon ECS, o. AWS App Mesh
El encabezado de rastro no se incluye en las cuotas del tamaño de mensaje y de atributo del mensaje de Amazon SQS. La activación del X-Ray seguimiento no superará sus cuotas de Amazon SQS. Para obtener más información sobre AWS las cuotas, consulte Amazon SQS Quotas.
Enviar el encabezado de seguimiento HTTP
Los componentes del remitente de Amazon SQS pueden enviar automáticamente el encabezado de rastro utilizando una llamada a SendMessageBatch o a SendMessage. Cuando los clientes del AWS SDK están instrumentados, se les puede rastrear automáticamente en todos los idiomas compatibles con el SDK. X-Ray El seguimiento Servicios de AWS y los recursos a los que accede desde esos servicios (por ejemplo, un bucket de Amazon S3 o una cola de Amazon SQS) aparecen como nodos descendentes en el mapa de seguimiento de la consola. X-Ray
Para obtener información sobre cómo rastrear las llamadas al AWS SDK con el idioma que prefiera, consulte los siguientes temas en los SDK compatibles:
-
Java: Rastreo de llamadas al AWS SDK con el X-Ray SDK for Java
-
Node.js – Rastreo de llamadas al AWS SDK con el SDK de X-Ray para Node.js
-
Python: Rastreo de llamadas al AWS SDK con el SDK de X-Ray para Python
-
Ruby: Rastreo de llamadas al AWS SDK con el SDK de X-Ray para Ruby
-
.NET: Rastreo de llamadas AWS del SDK con el X-Ray SDK para .NET
Recuperar el encabezado y el contexto de seguimiento
Si utiliza un consumidor posterior de Lambda, la propagación del contexto de rastro es automática. Para continuar la propagación del contexto con consumidores de Amazon SQS, debe instrumentar manualmente la entrega al componente receptor.
Hay tres pasos principales para recuperar el contexto de rastreo:
-
Recibir el mensaje de la cola del atributo
AWSTraceHeaderllamando a la APIReceiveMessage. -
Recuperar el encabezado de rastreo del atributo.
-
Recuperar el ID de rastreo del encabezado. Si lo desea, también puede añadir otras métricas al segmento.
A continuación, se muestra un ejemplo de implementación escrito con el X-Ray SDK para Java.
ejemplo: Recuperar el encabezado y el contexto de seguimiento
// Receive the message from the queue, specifying the "AWSTraceHeader" ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest() .withQueueUrl(QUEUE_URL) .withAttributeNames("AWSTraceHeader"); List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); if (!messages.isEmpty()) { Message message = messages.get(0); // Retrieve the trace header from the AWSTraceHeader message system attribute String traceHeaderStr = message.getAttributes().get("AWSTraceHeader"); if (traceHeaderStr != null) { TraceHeader traceHeader = TraceHeader.fromString(traceHeaderStr); // Recover the trace context from the trace header Segment segment = AWSXRay.getCurrentSegment(); segment.setTraceId(traceHeader.getRootTraceId()); segment.setParentId(traceHeader.getParentId()); segment.setSampled(traceHeader.getSampled().equals(TraceHeader.SampleDecision.SAMPLED)); } }