Amazon SNS e AWS X-Ray - AWS X-Ray

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 SNS e AWS X-Ray

Você pode usar AWS X-Ray com o Amazon Simple Notification Service (Amazon SNS) para rastrear e analisar solicitações à medida que elas percorrem seus tópicos do SNS até seus serviços de assinatura suportados pelo SNS. Use o rastreamento do X-Ray com o Amazon SNS para analisar latências em mensagens e serviços de back-end, como quanto tempo uma solicitação permanece em um tópico e quanto tempo leva para entregar a mensagem a cada uma das assinaturas do tópico. O Amazon SNS permite o rastreamento do X-Ray para tópicos comuns e FIFO.

Se você publicar em um tópico do Amazon SNS usando um serviço que já está instrumentado com o X-Ray, o Amazon SNS passará o contexto de rastreamento do publicador para os assinantes. Além disso, você pode ativar o rastreamento ativo para enviar dados de segmentos sobre suas assinaturas do Amazon SNS ao X-Ray para mensagens publicadas de um cliente do SNS instrumentado. Ative o rastreamento ativo para um tópico do Amazon SNS usando o console do Amazon SNS ou usando a CLI ou a API do Amazon SNS. Consulte Instrumentar sua aplicação para obter mais informações sobre como instrumentar clientes do SNS.

Configurar o rastreamento ativo do Amazon SNS

Você pode usar o console do Amazon SNS, a AWS CLI ou o SDK para configurar o rastreamento ativo do Amazon SNS.

Ao usar o console do Amazon SNS, o Amazon SNS tenta criar as permissões necessárias para que o SNS chame o X-Ray. A tentativa poderá ser rejeitada se você não tiver permissões suficientes para modificar as políticas de recursos do X-Ray. Para obter mais informações sobre o controle de acesso do Amazon SNS, consulte Identity and access management in Amazon SNS e Casos de exemplo para o controle de acesso do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service. Para obter mais informações sobre como ativar o rastreamento ativo usando o console do Amazon SNS, consulte Habilitar o rastreamento ativo em um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

Ao usar a AWS CLI ou o SDK para ativar o rastreamento ativo, você deve configurar manualmente as permissões usando políticas baseadas em recursos. Use PutResourcePolicy para configurar o X-Ray com a política baseada em recursos necessária para permitir que o Amazon SNS envie rastreamentos ao X-Ray.

exemplo Exemplo de política baseada em recursos do X-Ray para rastreamento ativo do Amazon SNS

Este exemplo de documento de política especifica as permissões que o Amazon SNS precisa para enviar dados de rastreamento ao X-Ray:

{ Version: "2012-10-17", Statement: [ { Sid: "SNSAccess", Effect: Allow, Principal: { Service: "sns.amazonaws.com", }, Action: [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], Resource: "*", Condition: { StringEquals: { "aws:SourceAccount": "account-id" }, StringLike: { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }

Use a CLI para criar uma política baseada em recursos que conceda permissões ao Amazon SNS para enviar dados de rastreamento ao X-Ray:

aws xray put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "SNSAccess", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "StringLike": { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }'

Para usar esses exemplos, substitua partition, regionaccount-id, e topic-namepor sua AWS partição, região, ID da conta e nome de tópico do Amazon SNS específicos. Para conceder permissão a todos os tópicos do Amazon SNS para enviar dados de rastreamento ao X-Ray, substitua o nome do tópico por *.

Visualize rastreamentos de publicadores e assinantes do Amazon SNS no console do X-Ray

Use o console X-Ray para visualizar um mapa de rastreamento e detalhes de rastreamento que exibem uma visão conectada dos editores e assinantes do Amazon SNS. Quando o rastreamento ativo do Amazon SNS é ativado para um tópico, o mapa de rastreamento X-Ray e o mapa de detalhes do rastreamento exibem nós conectados para editores do Amazon SNS, o tópico do Amazon SNS e assinantes downstream:

Mapa de rastreamento com o editor e assinante do Amazon SNS

Depois de escolher um rastreamento que abrange um editor e assinante do Amazon SNS, a página de detalhes do rastreamento X-Ray exibe um mapa de detalhes do rastreamento e um cronograma do segmento.

exemplo Exemplo de linha do tempo com publicador e assinante do Amazon SNS

Este exemplo mostra uma linha do tempo que inclui um publicador do Amazon SNS que envia uma mensagem a um tópico do Amazon SNS, o qual é processado por um assinante do Amazon SQS.

Linha do tempo do segmento com publicador e assinante do Amazon SNS

O exemplo de linha do tempo acima fornece detalhes sobre o fluxo de mensagens do Amazon SNS:

  • O segmento SNS representa a duração do percurso de ida e volta da chamada de API Publish do cliente.

  • O segmento myTopic representa a latência da resposta do Amazon SNS à solicitação de publicação.

  • O subsegmento SQS representa o tempo de ida e volta que o Amazon SNS leva para publicar a mensagem em uma fila do Amazon SQS.

  • O tempo entre o segmento myTopic e o subsegmento SQS representa o tempo que a mensagem passa no sistema do Amazon SNS.

exemplo Exemplo de linha do tempo com mensagens em lote do Amazon SNS

Se várias mensagens do Amazon SNS forem agrupadas em um único rastreamento, a linha do tempo do segmento exibirá segmentos que representam cada mensagem processada.

Linha do tempo do segmento para mensagens em lote do Amazon SNS