As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Amazon SQS e AWS X-Ray
AWS X-Ray integra-se ao Amazon Simple Queue Service (Amazon SQS) para rastrear mensagens que são passadas por uma fila do Amazon SQS. Se um serviço rastrear solicitações usando o X-Ray SDK, o Amazon SQS poderá enviar o cabeçalho de rastreamento e continuar a propagar o rastreamento original do remetente para o consumidor com um ID de rastreamento consistente. Essa continuidade permite que os usuários rastreiem, analisem, e depurem em serviços de downstream.
AWS X-Ray suporta o rastreamento de aplicativos orientados por eventos usando o Amazon SQS e. AWS Lambda Use o CloudWatch console para ver uma visualização conectada de cada solicitação à medida que ela é enfileirada com o Amazon SQS e processada por uma função Lambda downstream. Os rastreamentos dos produtores de mensagens precedentes são automaticamente vinculados aos rastreamentos dos nós consumidores subsequentes do Lambda, criando uma visão completa da aplicação. Para obter mais informações, consulte Rastrear aplicações orientadas a eventos.
O Amazon SQS permite a seguinte instrumentação de cabeçalho de rastreamento:
-
Cabeçalho HTTP padrão — O X-Ray SDK preenche automaticamente o cabeçalho de rastreamento como um cabeçalho HTTP quando você chama o Amazon SQS por meio do SDK. AWS O cabeçalho de rastreamento padrão é carregado por
X-Amzn-Trace-Ide corresponde a todas as mensagens incluídas em uma solicitaçãoSendMessageouSendMessageBatch. Para saber mais sobre o cabeçalho HTTP padrão, consulte Cabeçalho de rastreamento. -
AWSTraceHeaderAtributo do sistema —AWSTraceHeaderÉ um atributo do sistema de mensagens reservado pelo Amazon SQS para carregar o cabeçalho de X-Ray rastreamento com as mensagens na fila.AWSTraceHeaderestá disponível para uso mesmo quando a instrumentação automática por meio do X-Ray SDK não está, por exemplo, ao criar um SDK de rastreamento para um novo idioma. Quando ambas as instrumentações de cabeçalho são definidas, o atributo do sistema de mensagens substitui o cabeçalho de rastreamento HTTP.
Quando executado no Amazon EC2, o Amazon SQS permite o processamento de uma mensagem por vez. Isso se aplica ao ser executado em um host local e ao usar serviços de contêiner AWS Fargate, como Amazon ECS ou. AWS App Mesh
O cabeçalho de rastreamento é excluído das cotas de atributos de mensagem e tamanho de mensagem do Amazon SQS. A ativação do X-Ray rastreamento não excederá suas cotas do Amazon SQS. Para saber mais sobre AWS cotas, consulte Cotas do Amazon SQS.
Enviar o cabeçalho de rastreamento HTTP
Os componentes do remetente no Amazon SQS podem enviar o cabeçalho de rastreamento automaticamente por meio da chamada SendMessageBatch ou SendMessage. Quando os clientes do AWS SDK são instrumentados, eles podem ser rastreados automaticamente em todos os idiomas suportados pelo SDK. X-Ray Os recursos rastreados Serviços da AWS e que você acessa nesses serviços (por exemplo, um bucket do Amazon S3 ou uma fila do Amazon SQS) aparecem como nós downstream no mapa de rastreamento no console. X-Ray
Para saber como rastrear chamadas de AWS SDK com seu idioma preferido, consulte os seguintes tópicos nos SDKs compatíveis:
-
Java: Rastreando chamadas AWS do SDK com o X-Ray SDK for Java
-
Node.js – Rastreando chamadas AWS do SDK com o X-Ray SDK para Node.js
-
Python: Rastreando chamadas AWS do SDK com o X-Ray SDK para Python
-
Ruby: Rastreando chamadas AWS do SDK com o X-Ray SDK for Ruby
-
.NET: Rastreando chamadas AWS do SDK com o X-Ray SDK for .NET
Recuperar o cabeçalho de rastreamento e recuperar o contexto de rastreamento
Se você estiver usando um consumidor subsequente do Lambda, a propagação do contexto de rastreamento será automática. Para dar continuidade à propagação de contexto com os clientes do Amazon SQS, você deverá instrumentar manualmente a transferência para o componente receptor.
Existem três etapas principais para recuperar o contexto de rastreamento:
-
Receber a mensagem da fila para o atributo
AWSTraceHeaderchamando a APIReceiveMessage. -
Recuperar o cabeçalho de rastreamento do atributo.
-
Recuperar o ID de rastreamento do cabeçalho. Opcionalmente, adicione mais métricas ao segmento.
Veja a seguir um exemplo de implementação escrito com o X-Ray SDK para Java.
exemplo: Recuperar o cabeçalho de rastreamento e recuperar o contexto de rastreamento
// 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)); } }