AWS X-Ray

Permite realizar debugging y análisis de nuestras aplicaciones de forma visual, especialmente adecuado para arquitecturas de microservicios.

Ventajas

Con X-Ray podemos analizar aspectos como los siguientes:

  • Problemas de rendimiento (cuellos de botella)
  • Dependencias entre microservicios
  • Incidentes tipo pinpoint
  • Revisar comportamiento de una solicitud
  • Encontrar errores y excepciones
  • Cumplimiento de SLA
  • Identificar usuarios afectados

Además, es compatible con Lambda, Elastic Beanstalk, ECS, ELB, API Gateway, EC2 y servidores de aplicaciones (includo On-Premise).

Activación de X-Ray

  • A nivel de aplicación, debemos importar el SDK de AWS X-Ray, y son necesarios muy pocos cambios. El SDK capturará: llamadas a servicios AWS, peticiones HTTP/HTTPS, llamadas a BBDD (MySQL, PostgreSQL, DynamoDB) y llamadas a SQS.
  • Instalar demonio X-Ray o habilitar su integración:
    • Se puede instalar en Linux, Windows, Mac, y trabaja a bajo nivel analizando paquetes UDP.
    • Lambda y otros servicios AWS, ya lo tienen integrado

Conceptos X-Ray

Algunos conceptos para la implementación de X-Ray:

  • Segments: es lo que envía cada aplicación / servicio
  • SubSegment: para añadir más detalles al segment
  • Trace: Varios segmentos capturados para formar una traza de origen a fin
  • Samping: para reducir el coste, se reducen el número de peticiones enviadas a X-Ray
  • Annotations: pares de valores usados para indexar trazas y usarlo con filtros
  • Metadata: pares de valores, No indexados, y no usados para búsquedas

X-Ray API

Operaciones de escritura:

  • PutTraceSegments: sube segmentos al servicio X-Ray
  • PutTelemetryRecords: datos de telemetría del servicio (SegmentsReceivedCount, SegmentsRejectedCounts, …)
  • GetSamplingRules: muestra las Sampling Rules existentes

Operaciones de lectura:

  • GetServiceGraph: visualización principal
  • BatchGetTraces: obtiene lista de trazas por ID, cada traza es el conjunto de segmentos originados desde una única petición.
  • GetTraceSummaries: obtiene lista de IDs y anotaciones para las trazas disponibles en una franja de tiempo.
  • GetTraceGraph: gráfica de servicio de una traza determinada

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.