Resumen
Jaeger es un sistema de software open source que sirve para detectar operaciones entre los servicios distribuidos. Se utiliza para supervisar entornos complejos de microservicios y solucionar los problemas asociados a ellos.
Comunidad open source de Jaeger
Dado que Jaeger es un proyecto open source, se beneficia de una comunidad de cientos de colaboradores. Jaeger se basa en el uso de herramientas de instrumentación y de API de OpenTracing que no dependen de ningún proveedor en particular.
En 2015, la empresa de transporte compartido Uber desarrolló Jaeger como un proyecto open source. En 2017, la fundación Cloud Native Computing Foundation (CNCF) lo aceptó como un proyecto "en incubación" y, en 2019, pasó a estar dentro de la categoría de proyectos "graduados".
Terminología y elementos de Jaeger
Jaeger presenta las solicitudes de ejecución como rastreos. Un rastreo muestra la ruta de ejecución/datos que se genera a través de un sistema.
Este se compone de uno o varios intervalos, que son unidades lógicas de trabajo en Jaeger. Todos los intervalos incluyen el nombre de la operación, la hora de inicio y la duración. Los intervalos pueden agruparse y ordenarse.
Jaeger incluye varios elementos que funcionan en conjunto para recopilar, almacenar y visualizar intervalos y rastreos.
Jaeger Client incluye implementaciones específicas del lenguaje de la API de OpenTracing para el rastreo de entornos distribuidos. Estas pueden utilizarse de forma manual o con varios marcos open source.
Jaeger Agent es un daemon de red que está al tanto de los intervalos que se envían a través del Protocolo de datagramas de usuario. El agente debe colocarse en el mismo host que la aplicación instrumentada. Por lo general se implementa mediante un sidecar en entornos de contenedores, como Kubernetes.
Jaeger Collector recibe los intervalos y los coloca en una cola para procesarlos.
Los recopiladores requieren un backend de almacenamiento permanente, así que Jaeger también cuenta con un mecanismo con capacidad de conexión para el almacenamiento de los intervalos.
Query es un servicio que recupera los rastreos del almacenamiento.
Jaeger Console es una interfaz de usuario que le permite visualizar los datos que se obtienen del rastreo de entornos distribuidos.
Jaeger y Red Hat
Jaeger se instala de forma predeterminada como parte de Red Hat® OpenShift® Service Mesh, que incluye una implementación de Istio (una malla de servicios open source).
Los beneficios de esta implementación de rastreo de entornos distribuidos son muchos y variados. Jaeger se integra con Kiali, una consola con capacidad de observación para Istio. El backend de Jaeger está diseñado para ofrecer mayor escalabilidad sin ningún punto único de falla. Jaeger puede conectar los datos provenientes de los distintos elementos para crear un rastreo completo e integral. También es compatible con las versiones anteriores de Zipkin.