Resolución de problemas de AWS X-Ray - AWS X-Ray

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.

Resolución de problemas de AWS X-Ray

En este tema se enumeran errores y problemas comunes que podrían surgir cuando se utiliza la consola, la API o los SDK de X-Ray. Si se encuentra con un problema que no aparezca en esta lista, puede utilizar el botón Comentarios de esta página para notificarlo.

Mapa de rastros de X-Ray y páginas de datos de rastro

Las siguientes secciones pueden ayudarle si tiene problemas para usar el mapa de rastros de X-Ray y la página de detalles del rastro:

No veo todos mis registros de CloudWatch

La forma de configurar los registros para que aparezcan en las páginas de datos de rastro y del mapa de rastros de X-Ray depende de cada servicio.

  • Los registros de API Gateway aparecen si se activa el registro en API Gateway.

No todos los nodos del mapa de servicio permiten ver los registros asociados. Consulte los registros de los siguientes tipos de nodo:

  • Contexto de Lambda

  • Función de Lambda

  • Etapa de API Gateway

  • Clúster de Amazon ECS

  • Instancia de Amazon ECS

  • Servicio de Amazon ECS

  • Tarea de Amazon ECS

  • Clúster de Amazon EKS

  • Espacio de nombres de Amazon EKS

  • Nodo de Amazon EKS

  • Pod de Amazon EKS

  • Servicio de Amazon EKS

No veo todas mis alarmas en el mapa de rastros de X-Ray

El mapa de rastros de X-Ray muestra solo el icono de alerta de un nodo si cualquier alarma asociada a ese nodo tiene el estado ALARM.

El mapa de rastros asocia alarmas con nodos mediante la siguiente lógica:

  • Si el nodo representa un servicio de AWS, todas las alarmas con el espacio de nombres asociado a ese servicio se asocian al nodo. Por ejemplo, un nodo de tipo AWS::Kinesis está vinculado a todas las alarmas basadas en métricas en el espacio de nombres de CloudWatch AWS/Kinesis.

  • Si el nodo representa un recurso de AWS, las alarmas de ese recurso específico están vinculadas. Por ejemplo, un nodo de tipo AWS::DynamoDB::Table con el nombre “MyTable” está vinculado a todas las alarmas basadas en una métrica con el espacio de nombres AWS/DynamoDB y que tienen la dimensión TableName establecida en MyTable.

  • Si el nodo es de tipo desconocido, que se identifica mediante un borde discontinuo alrededor del nombre, no se asociará ninguna alarma a ese nodo.

No veo algunos de los recursos de AWS en el mapa de rastros

No todos los recursos de AWS se representan mediante un nodo dedicado. Algunos servicios de AWS se representan mediante un solo nodo para todas las solicitudes al servicio. Los siguientes tipos de recurso se muestran con un nodo por recurso:

  • AWS::DynamoDB::Table

  • AWS::Lambda::Function

    Las funciones de Lambda se representan mediante dos nodos: uno para el contenedor Lambda y otro para la función. Esto ayuda a identificar problemas de arranque en frío con las funciones de Lambda. Los nodos de contenedor de Lambda se asocian a alarmas y paneles de la misma manera que los nodos de función de Lambda.

  • AWS::ApiGateway::Stage

  • AWS::SQS::Queue

  • AWS::SNS::Topic

Hay demasiados nodos en el mapa de rastros

Utilice grupos de X-Ray para dividir el mapa en varios mapas. Para obtener más información, consulte Uso de expresiones de filtro con grupos.

SDK de X-Ray para Java

Error: Exception in thread "Thread-1" com.amazonaws.xray.exceptions.SegmentNotFoundException: Failed to begin subsegment named 'AmazonSNS': segment cannot be found.

Este error indica que el SDK de X-Ray ha intentado registrar una llamada saliente a AWS, pero no ha podido encontrar un segmento abierto. Esto podría darse en las siguientes situaciones:

  • No se ha configurado un filtro de servlet: el SDK de X-Ray crea segmentos para las solicitudes entrantes con un filtro denominado AWSXRayServletFilter. Configure un filtro de servlet para instrumentar las solicitudes entrantes.

  • Está utilizando clientes instrumentados fuera del código servlet: si utiliza un cliente instrumentado para realizar llamadas en código de inicio u otro tipo de código que no se ejecute en respuesta a una solicitud entrante, debe crear un segmento manualmente. Para ver ejemplos, consulte Instrumentación de código de inicio.

  • Está usando clientes instrumentados en subprocesos de procesos de trabajo: al crear un nuevo subproceso, la grabadora de X-Ray pierde su referencia al segmento abierto. Puede utilizar los métodos getTraceEntity y setTraceEntity para obtener una referencia al segmento o subsegmento actual (Entity) y devolverlo a la grabadora dentro del hilo. Consulte Uso de clientes instrumentados en subprocesos de trabajo para ver un ejemplo.

SDK de X-Ray para Node.js

Problema: CLS no funciona con Sequelize

Pase el espacio de nombres del SDK de X-Ray para Node.js a Sequelize con el método cls.

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

Problema: CLS no funciona con Bluebird

Utilice cls-bluebird para que Bluebird funcione con CLS.

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

El daemon de X-Ray

Problema: El demonio está utilizando credenciales incorrectas

El daemon utiliza el SDK de AWS para cargar las credenciales. Si se emplean varios métodos para proporcionar las credenciales, se utilizará el método que tenga la máxima prioridad. Para obtener más información, consulte Ejecutar el demonio.