Solução de problemas 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 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ê tiver problemas ao usar o mapa de rastreamento do X-Ray e a página de detalhes do rastreamento:

Não vejo todos os meus CloudWatch registros

A forma de configurar os registros 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 registros associados. Visualize os registros dos seguintes tipos de nós:

  • Contexto Lambda

  • Função do Lambda

  • Estágio do 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 Amazon EKS

  • Nodo Amazon EKS

  • Pod Amazon EKS

  • Serviço Amazon EKS

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

O mapa de rastreamento do X-Ray mostra somente o ícone de alerta de um nó se algum alarme associado a esse nó estiver no estado ALARM.

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

  • Se o nó representar um AWS serviço, 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 CloudWatch AWS/Kinesis namespace.

  • Se o nó representar um AWS recurso, 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 baseados em uma métrica com o namespace AWS/DynamoDB e com a TableName dimensão 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 AWS recursos no mapa de rastreamento

Nem todo AWS recurso é representado por um nó dedicado. Alguns AWS serviços são representados por um único nó 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 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 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 tópico “Thread-1" com.amazonaws.xray.exceptions. SegmentNotFoundException: Falha ao iniciar o subsegmento chamado 'AmazonSNS': o segmento não pode ser encontrado.

Esse erro indica que o X-Ray SDK tentou gravar uma chamada de saída para AWS, mas não conseguiu 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 passá-los de volta para o gravador dentro do thread. Consulte Usar clientes instrumentais em threads de operador para ver um exemplo.

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 AWS SDK 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.