Una traza registra la ruta completa de una solicitud a través de un sistema distribuido, desde el primer servicio al que ingresa hasta la respuesta final. ARMS recopila estos datos para que usted visualice cada llamada de servicio, sus tiempos y si se completó con éxito.
Beneficios
En un sistema distribuido, una sola solicitud suele interactuar con varios servicios. Cuando una solicitud excede el tiempo de espera, falla o genera una excepción, identificar la causa raíz requiere visibilidad de toda la cadena de llamadas. Las trazas proporcionan esa visibilidad:
Solución de problemas: las trazas muestran la ruta completa de la solicitud y el estado de ejecución de cada servicio involucrado. Esto le permite aislar las fallas rápidamente.
Optimización del rendimiento: las duraciones por span revelan los cuellos de botella en la ejecución y le dan un objetivo preciso para optimizar.
Monitoreo del sistema: las trazas ofrecen visibilidad en tiempo real del comportamiento del sistema. Así, los ingenieros de operación y mantenimiento evalúan el estado de los servicios y el uso de recursos.
Conceptos clave
Traza
Una traza captura la ejecución completa de una solicitud, desde el momento en que ingresa al sistema hasta su respuesta final. Por ejemplo, una acción de usuario que desencadena llamadas en tres microservices produce una sola traza que abarca todo el recorrido. Esta incluye cada llamada a procedimiento remoto (RPC) y cada consulta a la base de datos.
Cada traza es un árbol de spans. ARMS asigna a cada traza un identificador único que persiste en todos los servicios durante la duración de la solicitud. Todos los spans que pertenecen a la misma solicitud comparten este identificador. De esta forma, cuando depure, podrá consultar cada span relacionado en un solo lugar.
El span ubicado en la raíz del árbol, conocido como root span, no tiene elemento padre y marca el inicio de la traza. Los demás spans cuentan con un identificador de span padre que los vincula con el span que los activó. Con esto se forma la jerarquía de llamadas.
Span
Un span es la unidad básica de una traza. Representa una única operación lógica, como una llamada a un método, la invocación de un bloque de programa, un RPC o una consulta a la base de datos.
Cada span registra lo siguiente:
Un identificador de span único
Marcas de tiempo de inicio y fin
Un identificador de span padre (ausente en el root span)
Los spans se anidan entre sí para formar el árbol de la traza. Esta estructura refleja la jerarquía real de llamadas entre servicios.