Solução de problemas do 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á.

Solução de problemas do AWS X-Ray

Este tópico lista os erros e os problemas comuns que podem ser encontrados ao usar a API, o console ou os SDKs do X-Ray. Se encontrar um problema que não esteja listado aqui, você poderá usar o botão Feedback desta página para relatá-lo.

Mapa de rastreamento do X-Ray e páginas de detalhes do rastreamento

As seções a seguir podem ajudar se você estiver tendo problemas ao usar o mapa de rastreamento do X-Ray e a página de detalhes do rastreamento:

Não vejo todos os meus logs do CloudWatch

A forma de configurar os logs para que eles apareçam no mapa de rastreamento do X-Ray e nas páginas de detalhes do rastreamento depende do serviço.

  • Os logs do API Gateway serão exibidos se o registro estiver ativado no API Gateway.

Nem todos os nós do mapa de serviço oferecem suporte à visualização dos logs associados. Visualize os logs dos seguintes tipos de nós:

  • Contexto do Lambda

  • Função do Lambda

  • Estágio da API Gateway

  • Cluster do Amazon ECS

  • Instância do Amazon ECS

  • Serviço do Amazon ECS

  • Tarefa do Amazon ECS

  • Cluster do Amazon EKS

  • Namespace do Amazon EKS

  • Nó do Amazon EKS

  • Pod do Amazon EKS

  • Serviço do Amazon EKS

Não vejo todos os meus alarmes no mapa de rastreamento do X-Ray

O mapa de rastreamento do X-Ray mostrará somente o ícone de alerta de um nó se algum alarme associado a ele estiver no estado ALARME.

O mapa de rastreamento associa os alarmes aos nós usando a seguinte lógica:

  • Se o nó representa um serviço da AWS, todos os alarmes com o namespace associado a esse serviço serão associados ao nó. Por exemplo, um nó do tipo AWS::Kinesis está vinculado a todos os alarmes baseados em métricas no namespace AWS/Kinesis do CloudWatch.

  • Se o nó representar um recurso da AWS, os alarmes desse recurso específico serão vinculados. Por exemplo, um nó do tipo AWS::DynamoDB::Table com o nome "MyTable" está vinculado a todos os alarmes com base em uma métrica com o namespace AWS/DynamoDB e tem a dimensão TableName definida como MyTable.

  • Se o nó for de tipo desconhecido, o que é identificado por uma borda tracejada ao redor do nome, nenhum alarme estará associado ao nó.

Não vejo alguns recursos da AWS no mapa de rastreamento

Nem todo recurso da AWS é representado por um nó dedicado. Alguns serviços da AWS são representados por um nó único para todas as solicitações ao serviço. Os seguintes tipos de recursos são exibidos com um nó por recurso:

  • AWS::DynamoDB::Table

  • AWS::Lambda::Function

    As funções do Lambda são representadas por dois nós: um para o contêiner Lambda e outro para a função. Isso ajuda a identificar problemas de inicialização a frio com funções do Lambda. Os nós de contêiner do Lambda são associados a alarmes e painéis da mesma maneira que os nós de função do Lambda.

  • AWS::ApiGateway::Stage

  • AWS::SQS::Queue

  • AWS::SNS::Topic

Há muitos nós no mapa de rastreamento

Use grupos do X-Ray para dividir o mapa em diversos mapas. Para obter mais informações, consulte Usar expressões de filtro com grupos.

X-Ray SDK para Java

Erro: exceção no thread "Thread-1" com.amazonaws.xray.exceptions.SegmentNotFoundException: falha ao iniciar subsegmento chamado 'AmazonSNS': o segmento não pode ser encontrado.

Esse erro indica que o X-Ray SDK tentou registrar uma chamada de saída para a AWS, mas não foi possível encontrar um segmento aberto. Isso pode ocorrer nas seguintes situações:

  • Um filtro de servlet não está configurado: o X-Ray SDK cria segmentos para as solicitações de entrada com um filtro chamado AWSXRayServletFilter. Configure um filtro de servlet para instrumentar as solicitações de entrada.

  • Você está usando clientes instrumentados fora do código do servlet: se você usar um cliente instrumentado para fazer chamadas no código de inicialização ou em outro código que não seja executado em resposta a uma solicitação de entrada, deverá criar um segmento manualmente. Consulte Instrumentar código de inicialização para ver exemplos.

  • Você está usando clientes instrumentados em threads de operador: quando você cria um thread, o gravador do X-Ray perde a referência do segmento aberto. Você pode usar os métodos getTraceEntity e setTraceEntity para obter uma referência ao segmento ou subsegmento atual (Entity) e transmiti-los de volta para o gravador dentro do thread. Para ver um exemplo, consulte Usar clientes instrumentais em threads de operador.

X-Ray SDK para Node.js

Problema: o CLS não funciona com o Sequelize

Passe o namespace do X-Ray SDK para Node.js para o Sequelize com o método cls.

var AWSXRay = require('aws-xray-sdk'); const Sequelize = require('sequelize'); Sequelize.cls = AWSXRay.getNamespace(); const sequelize = new Sequelize(...);

Problema: o CLS não funciona com o Bluebird

Use cls-bluebird para fazer com que o Bluebird funcione com o CLS.

var AWSXRay = require('aws-xray-sdk'); var Promise = require('bluebird'); var clsBluebird = require('cls-bluebird'); clsBluebird(AWSXRay.getNamespace());

O daemon do X-Ray

Problema: O daemon está usando as credenciais erradas

O daemon usa o SDK da AWS para carregar as credenciais. Se você usar vários métodos para fornecer credenciais, o método com a precedência mais alta será usado. Consulte Execução do daemon para obter mais informações.