Próximo Pandora FMS Workshop: 16 de julio. Más información →

Qué es el seguimiento distribuido (distributed tracing) y cómo aplicarlo en microservicios IT

Introducción

Breve panorama del problema: complejidad en entornos modernos

En la digitalización que estamos viviendo, las aplicaciones modernas se construyen cada vez más utilizando microservicios y arquitecturas que son nativas de la nube, buscando el acceso desde cualquier lugar y cualquier momento para los usuarios y clientes.
Está claro que esta naturaleza distribuida dificulta el seguimiento de las solicitudes de servicios a medida que transitan los datos y procesos entre múltiples servicios. En este escenario, la monitorización de infraestructura tradicional tiene dificultades para proporcionar una visión completa del comportamiento del sistema. De ahí que el seguimiento o rastreo distribuido (distributed tracing) ayude a los desarrolladores y administradores de TI a visualizar el recorrido completo de las solicitudes y facilite la identificación de su desempeño, los posibles cuellos de botella y los fallos potenciales así como el momento en el que suceden.

¿Qué es el seguimiento distribuido o rastreo distribuido?

Definición funcional y técnica

El rastreo distribuido permite observar las solicitudes de datos que fluyen a lo largo de un sistema distribuido. La arquitectura de microservicios moderna para las aplicaciones tiene componentes diversos e independientes, donde suceden intercambios de datos mediante APIs. Desde el aspecto funcional, el seguimiento distribuido permite la continuidad del seguimiento, ya que cada solicitud tiene un ID de seguimiento único entre múltiples servicios; puede establecer jerarquías de tramos dentro de un servicio; aprovecha bibliotecas de seguimiento (p. ej., OpenTelemetry, Jaeger) para recopilar datos de seguimiento, además de un registro contextual (integrando registros y métricas), dando completa observabilidad; además, se puede registrar seguimientos según reglas predefinidas.

Desde un punto de vista técnico, el seguimiento distribuido ayuda a comprender cómo fluyen las solicitudes a través de los sistemas distribuidos; se puede identificar cuellos de botella y posible latencia; identifica fallos y acelera la depuración. También, se puede aprovechar para la asignación de recursos con base en información sobre dependencias y distribución de cargas. Además, ayuda en la colaboración entre tu equipo al dar seguimiento a las interacciones entre los servicios y los responsables de dichos servicios.

Diferencias con el logging tradicional y métricas

El seguimiento es la clave entre el logging tradicional, las métricas y el seguimiento distribuido. Para comprender sus diferencias, el nivel de profundidad y cómo interactúan entre sí, qué mejor que representarlo en la siguiente tabla.

Tabla – Diferencias entre seguimiento distribuido y el logging tradicional y las métricas

Objetivo

Nivel de profundidad, mayor eficacia

Caso de uso

Seguimiento distribuido

Rastrea solicitudes entre múltiples servicios, dando visibilidad de extremo a extremo.

Captura interacciones detalladas entre servicios, mostrando la latencia y las dependencias.

Diagnostica cuellos de botella en el desempeño y fallos en los servicios de los sistemas distribuidos.

Logging

Registra eventos, errores y actividades del sistema.

Da un contexto histórico para la depuración, pero no brinda visibilidad entre múltiples servicios.

Da un seguimiento a los errores, la auditoría y el análisis forense.

Métricas

Monitorea el estado del sistema mediante la recopilación de datos numéricos.

Agrega datos a lo largo del tiempo (histórico), lo que contribuye al análisis de tendencias y la generación de alertas.

Detectar anomalías y predecir fallos antes de que ocurran.

Como puedes ver, todas proporcionan hallazgos útiles para tu equipo, aunque considera que los logs y las métricas por sí solos no son información suficiente para comprender lo que sucede en la complejidad de los sistemas distribuidos. Las trazas (traces) son recursos de información que complementan la observabilidad gracias a la correlación y la contextualización, vinculando recursos, servicios y dependencias. De manera que el seguimiento distribuido es un recurso muy poderoso para comprender las complejas interacciones de servicios en las arquitecturas modernas para lograr sistemas estables y mejores experiencias para los usuarios y clientes.

Cómo funciona el seguimiento distribuido

El seguimiento distribuido proporciona visibilidad sobre cómo interactúan los diferentes microservicios con base en los componentes que reflejaremos en la siguiente figura:

  • Inicio de seguimiento: Cuando un usuario realiza una solicitud, genera un ID de seguimiento (trace ID) único a lo largo de múltiples servicios.
  • Creación de intervalos: Cada servicio con el que interactúa la solicitud crea un intervalo (o span), que representa una sola operación (ejemplos: una consulta a la página web o la base de datos, llamadas API). Los spans crean un seguimiento o trace, que muestra el recorrido completo de la solicitud.
  • Propagación del contexto a través de servicios: El trace ID y los datos del intervalo o span se transmiten entre servicios mediante encabezados (headers) en las solicitudes de red, garantizando la continuidad y permitiendo que las herramientas de observabilidad reconstruyan el flujo de la solicitud.
  • Recopilación y visualización de datos (telemetría): Las herramientas de seguimiento recopilan datos del intervalo, tales como latencia, errores y dependencias. El seguimiento se visualiza en un gráfico de llama (flame graph), cronogramas (timeline), árboles de llamada o cascada (waterfall chart) para facilitar a tu equipo de ingenieros a identificar los cuellos de botella.
  • Solución de problemas y optimización: Con los hallazgos, tu equipo puede identificar los servicios que estén presentando latencia, fallos o interacciones ineficientes. También, la información es valiosa para definir estrategias en la gestión de proyectos de TI que logren optimizar el desempeño, mejorar la confiabilidad y optimizar la depuración.

Figura- Cómo funciona el Seguimiento Distribuido


Distributed tracing en arquitecturas de microservicios

Por qué es imprescindible el seguimiento de microservicios

El seguimiento distribuido ayuda a desarrolladores y administradores de sistemas a seguir visualmente la ruta de las solicitudes a lo largo de diferentes microservicios. Esta visibilidad permite corregir errores y problemas de desempeño que finalmente puedan tener un impacto en la experiencia del cliente.

Seguimiento de extremo a extremo (end-to-end tracing)

Distributed Tracing mejora el seguimiento de forma integral con una visibilidad total de los sistemas complejos y distribuidos, apoyándose en una observabilidad unificada (integrando registros y métricas), la propagación de contexto (de todos los microservicios), facilitando el seguimiento de solicitudes de punta a punta. También, el seguimiento distribuido ayuda a optimizar el desempeño al identificar cuellos de botella y problemas de latencia en todo el ciclo de vida de las solicitudes. Toda esta información ayuda a los ingenieros a identificar fallos con mayor rapidez al correlacionar traces con logs y métricas.

Algunos casos típicos:

  • API gateways: Un usuario de una aplicación realiza una solicitud y el gateway la reenvía a diferentes servicios y asigna un ID de seguimiento a la solicitud. Cada microservicio involucrado en la solicitud crea spans para rastrear el tiempo de ejecución. El trace se propaga entre servicios mediante encabezados. Con esto, el seguimiento distribuido permite a los ingenieros obtener una visibilidad integral sobre posibles cuellos de botella.
  • Colas de mensajes: En la monitorización de aplicaciones como el envío de correos electrónicos, el seguimiento distribuido permite analizar cuánto tiempo toma el procesamiento y, en base a ello, definir estrategias para optimizar la entrega de mensajes.
  • Funciones serverless: En serverless (sin servidor) se opera en entornos efímeros, por lo que la depuración de problemas de rendimiento puede ser un desafío para tu equipo. Aquí el seguimiento distribuido facilita la visibilidad integral del flujo de las solicitudes a lo largo de los diferentes servicios.

Ventajas del seguimiento distribuido

  • Detección de cuellos de botella y errores: Al tener una visibilidad completa e integral, el seguimiento distribuido brinda la capacidad de visualizar el tiempo de respuesta de cada servicio, ayudando a detectar rápidamente dónde se generan los retrasos y los cuellos de botella potenciales.
  • Reducción de MTTD y MTTR: En la detección de fallos (MTTD, Mean Time to Detect) el seguimiento distribuido ayuda a tener visibilidad en tiempo real de las solicitudes y sus interacciones entre microservicios, ayudando a identificar anomalías y fallos de manera ágil y rápida. En la resolución de problemas (MTTR, Mean Time to Resolve), el seguimiento distribuido ayuda a ubicar rápidamente el fallo con precisión, mostrando qué servicio o componente está causando el error o requiere parches.
  • Mejora en SLA, rendimiento y experiencia de usuario: El seguimiento distribuido ayuda a monitorizar los tiempos de actividad (uptime) y el cumplimiento de los acuerdos de nivel de servicio (Service Level Agreement) al detectar tiempos de respuesta y disponibilidad en tiempo real. Al reducir los tiempos de carga y errores, se mejora la percepción del usuario sobre la rapidez y confiabilidad del sistema, resultando en su mejor experiencia.
  • Colaboración entre equipos (DevOps, SRE, QA): Una visibilidad completa permite una visión compartida entre los diferentes equipos de tu empresa sobre el rendimiento y la estabilidad del sistema. En DevOps, ayuda a detectar problemas en el despliegue y optimización del software; en SRE (Site Reliability Engineering o ingeniería de fiabilidad de sitio), ayuda a identificar cuellos de botella y mejorar la resiliencia apoyándote en el análisis detallado de las trazas (traces).

Retos y limitaciones

  • Instrumentación manual vs automática: Implementar y mantener un seguimiento distribuido requiere instrumentación de cada servicio, lo que puede ser complejo y tomar tiempo realizarlo. Además, considera que la mayoría (o todos) los sistemas antiguos no admiten instrumentación automática, lo que puede demandar modificaciones manuales.
  • Coste y volumen de datos: Capturar las trazas en cada solicitud puede generar un volumen abrumador de datos, afectando el rendimiento del sistema, además de coste en tiempo y recursos de tu equipo.
  • Problemas de muestreo y contexto incompleto: Por el alto volumen de captura de las trazas, buscando evitar la sobrecarga, se deben aplicar estrategias de muestreo, lo que puede implicar la pérdida de información relevante o un contexto incompleto. También, la recopilación automática de datos y su integración con múltiples servicios y herramientas, además de complicada, puede exponer información sensible si no se gestiona adecuadamente.

Cómo se integra el seguimiento distribuido con Pandora FMS

Pandora FMS puede integrarse con soluciones de seguimiento distribuido como Jaeger o OpenTelemetry para incorporar las trazas dentro de su consola de supervisión. Aunque no genera ni instrumenta trazas por sí mismo, permite representarlas como datos operativos que complementan la información procedente de logs, métricas y eventos.

Gracias a esta integración, Pandora FMS aporta:

  • Correlación de trazas con logs y métricas: Ofrece una vista contextual de cada incidente, relacionando la traza con los datos ya recogidos en el sistema.
  • Visualización unificada en cuadros de mando: Muestra las trazas junto a otros indicadores clave como disponibilidad, uso de recursos o estado de servicios críticos.
  • Integración con flujos de alertas e ITSM: Permite que las trazas relevantes disparen alertas o se asocien automáticamente a procesos de gestión de incidencias.

Esta capacidad refuerza el enfoque de Pandora FMS como plataforma de observabilidad centralizada (Single Pane of Glass), especialmente útil en entornos donde conviven distintos sistemas de instrumentación y supervisión.

Conclusión

Antes de emprender el seguimiento distribuido, es esencial comprender las necesidades y prioridades de tu negocio, alineando esta práctica con tus objetivos de rendimiento y experiencia de usuario. Considera los retos de instrumentación, coste y volumen de datos, así como la integración con tus sistemas actuales de monitorización. Con una implementación correcta, apoyada en herramientas como Pandora FMS y su integración con soluciones de trazado distribuido, podrás obtener una visión unificada, optimizar el desempeño y reducir los tiempos de detección y resolución de incidencias.

Te invito a consultar con los expertos de Pandora FMS sobre las mejores prácticas para emprender el seguimiento distribuido en tu organización. Haz click aquí.

Habla con el equipo de ventas, pide presupuesto,
o resuelve tus dudas sobre nuestras licencias