??? ¡Ya llega Jaeger v2! Lea la publicación del blog y pruébelo.
gráfico TD
SDK["OpenTelemetry SDK"] --> |HTTP o gRPC| COLECCIONISTA
COLECCIONISTA["Coleccionista Jaeger"] --> TIENDA[Almacenamiento]
COLECTOR --> |gRPC| PLUGIN[Complemento de almacenamiento]
COLECTOR --> |gRPC/muestreo| SDK
PLUGIN --> TIENDA
CONSULTA[Servicio de consulta Jaeger] --> TIENDA
CONSULTA --> |gRPC| COMPLEMENTO
UI[UI de Jaeger] --> |HTTP| CONSULTA
subgrafo Anfitrión de la aplicación
Aplicación de usuario subgrafo
SDK
fin
fin
Jaeger, inspirada en Dapper y OpenZipkin, es una plataforma de seguimiento distribuida creada por Uber Technologies y donada a Cloud Native Computing Foundation. Se puede utilizar para monitorear sistemas distribuidos basados en microservicios:
Ver también:
Jaeger está alojado en la Cloud Native Computing Foundation (CNCF) como el séptimo proyecto de alto nivel (graduado en octubre de 2019). Si es una empresa que quiere ayudar a dar forma a la evolución de las tecnologías empaquetadas en contenedores, programadas dinámicamente y orientadas a microservicios, considere unirse a la CNCF. Para obtener detalles sobre quién está involucrado y cómo Jaeger desempeña un papel, lea el anuncio de incubación de CNCF Jaeger y el anuncio de graduación de Jaeger.
Jaeger es un proyecto de código abierto con gobernanza abierta. Agradecemos las contribuciones de la comunidad y nos encantaría su ayuda para mejorar y ampliar el proyecto. A continuación se ofrecen algunas ideas sobre cómo participar. Muchos de ellos ni siquiera requieren codificación.
El backend de Jaeger está diseñado para no tener puntos únicos de falla y escalar con las necesidades del negocio. Por ejemplo, cualquier instalación de Jaeger en Uber suele procesar varios miles de millones de tramos por día.
Los proyectos Jaeger y OpenTelemetry tienen objetivos diferentes. OpenTelemetry tiene como objetivo proporcionar API y SDK en varios idiomas para permitir que las aplicaciones exporten diversos datos de telemetría fuera del proceso, a cualquier número de métricas y backends de seguimiento. El proyecto Jaeger es principalmente el backend de rastreo que recibe datos de telemetría de rastreo y proporciona procesamiento, agregación, extracción de datos y visualizaciones de esos datos. Para obtener más información, consulte una publicación de blog de Jaeger y OpenTelemetry.
Jaeger fue diseñado originalmente para soportar el estándar OpenTracing. La terminología todavía se usa en Jaeger UI, pero los conceptos tienen una asignación directa al modelo de datos de seguimiento de OpenTelemetry.
Capacidad | Concepto de seguimiento abierto | Concepto de OpenTelemetry |
---|---|---|
Representar trazas como gráficos acíclicos dirigidos (no solo árboles) | abarcar referencias | enlaces de extensión |
Atributos de intervalo fuertemente tipados | abarcar etiquetas | atributos de extensión |
Eventos/registros fuertemente tipados | registros de extensión | abarcar eventos |
El proyecto Jaeger recomienda los SDK de OpenTelemetry para instrumentación, en lugar de los SDK de Jaeger ahora obsoletos.
Jaeger se puede utilizar con un número cada vez mayor de backends de almacenamiento:
Jaeger Web UI se implementa en Javascript utilizando marcos de trabajo de código abierto populares como React. Se han lanzado varias mejoras de rendimiento en la versión 1.0 para permitir que la interfaz de usuario maneje de manera eficiente grandes volúmenes de datos y muestre seguimientos con decenas de miles de intervalos (por ejemplo, probamos un seguimiento con 80.000 intervalos).
El backend de Jaeger se distribuye como una colección de imágenes de Docker. Los binarios admiten varios métodos de configuración, incluidas opciones de línea de comandos, variables de entorno y archivos de configuración en múltiples formatos (yaml, toml, etc.).
La forma recomendada de implementar Jaeger en un clúster de Kubernetes de producción es a través de Jaeger Operador.
El operador Jaeger proporciona una CLI para generar manifiestos de Kubernetes desde Jaeger CR. Esto puede considerarse como una fuente alternativa a los archivos de manifiesto simples de Kubernetes.
El ecosistema de Jaeger también proporciona un gráfico Helm como una forma alternativa de implementar Jaeger.
Todos los componentes backend de Jaeger exponen las métricas de Prometheus de forma predeterminada (también se admiten otros backends de métricas). Los registros se escriben de forma estándar utilizando la biblioteca de registros estructurada zap.
Las auditorías de seguridad de Jaeger de terceros están disponibles en https://github.com/jaegertracing/security-audits. Consulte el número 1718 para obtener un resumen de los mecanismos de seguridad disponibles en Jaeger.
Aunque recomendamos instrumentar aplicaciones con OpenTelemetry, si su organización ya ha invertido en la instrumentación utilizando bibliotecas Zipkin, no es necesario que reescriba todo ese código. Jaeger proporciona compatibilidad con versiones anteriores de Zipkin al aceptar intervalos en formatos Zipkin (Thrift o JSON v1/v2) a través de HTTP. Cambiar del backend de Zipkin es solo una cuestión de enrutar el tráfico desde las bibliotecas de Zipkin al backend de Jaeger.
En ocasiones, las marcas CLI pueden quedar obsoletas debido, por ejemplo, a mejoras de usabilidad o nuevas funciones. En tales situaciones, los desarrolladores que introducen la desactivación deben seguir estas pautas.
En resumen, para un indicador CLI obsoleto, debería esperar ver el siguiente mensaje en la documentación --help
:
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
Se proporcionará un período de gracia de al menos 3 meses o dos mejoras de versión menor (lo que ocurra más tarde) desde la primera versión que contiene el aviso de obsolescencia antes de que se pueda eliminar el indicador CLI obsoleto.
Por ejemplo, considere un escenario en el que se lanza la versión 1.28.0 el 1 de junio de 2021 y contiene un aviso de obsolescencia para un indicador CLI. Esta bandera permanecerá en un estado obsoleto hasta el 1 de septiembre de 2021 o la versión 1.30.0, lo que ocurrirá más tarde, donde se podrá eliminar en cualquiera de esos eventos o después de esa fecha. Es posible que permanezca obsoleto durante más tiempo que el período de gracia mencionado anteriormente.
El proyecto Jaeger intenta rastrear las versiones de Go actualmente compatibles, según lo definido por el equipo de Go. Quitar la compatibilidad con una versión de Go no compatible no se considera un cambio importante.
A partir del lanzamiento de Go 1.21, la compatibilidad con las versiones de Go se actualizará de la siguiente manera:
N
, se realizarán actualizaciones en los pasos de compilación y prueba para adaptarse a la última versión menor de Go.N
, se eliminará la compatibilidad con la versión N-2
de Go y la versión N-1
se convertirá en la versión mínima requerida. El proyecto Jaeger recomienda los SDK de OpenTelemetry para instrumentación, en lugar de los SDK nativos de Jaeger que ahora están en desuso.
Ver CONTRIBUIR.
Ver CONTRIBUIR.
¡Gracias a todas las personas que ya contribuyeron!
Las reglas para convertirse en mantenedor están definidas en el documento GOBERNANZA. A continuación se muestran los mantenedores oficiales del proyecto Jaeger. Utilice @jaegertracing/jaeger-maintainers
para etiquetarlos en problemas/PR.
Algunos repositorios de jaegertracing org tienen mantenedores adicionales.
Agradecemos a nuestros antiguos mantenedores por sus contribuciones al proyecto Jaeger.
Los mantenedores y contribuyentes de Jaeger se reúnen periódicamente mediante videollamada. Todos son bienvenidos a unirse, incluidos los usuarios finales. Para obtener detalles de la reunión, consulte https://www.jaegertracing.io/get-in-touch/.
Ver https://www.jaegertracing.io/docs/roadmap/
¿Tiene preguntas, sugerencias o informes de errores? Llegue a la comunidad del proyecto a través de estos canales:
#jaeger
(es necesario unirse a CNCF Slack por primera vez)jaeger-tracing
Jaeger como producto consta de múltiples componentes. Queremos admitir diferentes tipos de usuarios, ya sea que solo utilicen nuestras bibliotecas de instrumentación o la instalación completa de Jaeger, ya sea que se ejecute en producción o lo use para solucionar problemas en desarrollo.
Consulte ADOPTERS.md para conocer algunas de las organizaciones que utilizan Jaeger en la actualidad. Si desea agregar su organización a la lista, comente sobre nuestra edición de la encuesta.
Copyright (c) Los autores de Jaeger. Licencia Apache 2.0.