
Autores: Ted Young, Pritam Shah y el Comité de Especificaciones Técnicas (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev y Yuri Shkuro).
El proyecto conjunto adquirió el nombre: http://opentelemetry.io
Muy, muy corto:
- Estamos creando un nuevo conjunto unificado de bibliotecas y especificaciones para la posibilidad de monitorear la telemetría. Combinará los proyectos OpenTracing y OpenCensus, y también proporcionará una forma compatible para la migración.
- La implementación de referencia en Java estará disponible el 24 de abril, el trabajo en implementaciones en otros idiomas comenzará en su totalidad a partir del 8 de mayo de 2019. Puedes ver el horario aquí .
- Para septiembre de 2019, se planifica la paridad con los proyectos existentes para C #, Golang, Java, NodeJS y Python. Nos espera mucho trabajo, pero podemos manejarlo si trabajamos en paralelo. Si está interesado en participar en este proyecto, regístrese y háganos saber cómo le gustaría contribuir.
- Cuando la implementación en cada idioma sea madura, los proyectos correspondientes de OpenTracing y OpenCensus se cerrarán. Esto significa congelar proyectos antiguos, y el nuevo proyecto continuará admitiendo herramientas existentes durante dos años, utilizando compatibilidad con versiones anteriores.
Resumen del proyecto

Nos estamos fusionando! El objetivo más alto es poner los proyectos OpenTracing y OpenCensus en un proyecto común.
El núcleo del nuevo proyecto será un conjunto de interfaces limpias y bien pensadas, incluido el conjunto tradicional de bibliotecas que implementan estas interfaces en forma de los llamados SDK La guinda del pastel serán los estándares recomendados para los protocolos de datos y cables, incluidas las partes comunes de la infraestructura.
El resultado será un sistema de telemetría completo adecuado para monitorear microservicios y otros tipos de sistemas distribuidos modernos, compatible con la mayoría de los principales OSS y programas centrales comerciales.
Eventos clave
24 de abril: se presenta un candidato de referencia para su revisión.
8.05 - Se forma un equipo que comienza a trabajar en todos los idiomas.
05.20 - Lanzamiento oficial del proyecto en Kubecon Barcelona.
6.09 - Las implementaciones en C #, Golang, Java, NodeJS y Python logran la paridad con sus pares.
6.11 - La finalización oficial de los proyectos OpenTracing y OpenCensus.
11.20 - Fiesta de despedida en honor a la finalización de proyectos en la Cumbre de Observabilidad, Kubecon San Diego.
Cronología de la convergencia

La migración para cada idioma incluye la creación de un SDK listo para la implementación industrial, herramientas para bibliotecas populares, documentación, CI, herramientas de compatibilidad con versiones anteriores y cierre de proyectos relacionados con OpenCensus y OpenTracing (puesta de sol). Establecimos un objetivo ambicioso para septiembre de 2019: lograr la paridad para los lenguajes C #, Golang, Java, NodeJS y Python. Cambiaremos la fecha de la puesta del sol hasta que todos los idiomas estén listos. Pero es preferible evitar esto.
Cuando vea objetivos, piense en su participación personal, háganoslo saber completando el formulario de registro o saludando en los chats de Gitter de los proyectos OpenTracing y OpenCensus . Vea el gráfico como una infografía aquí .
Objetivo: primer borrador de una especificación interlenguaje (finalización antes del 8 de mayo)
Es importante trabajar juntos, incluso cuando se trabaja en paralelo en diferentes idiomas. Una especificación interlenguaje proporciona orientación para el proyecto. Suena prosaico, pero es una garantía de soportar un sistema completo que parece familiar, independientemente del lenguaje de programación.
Requisitos obligatorios para el primer borrador de especificación para el lenguaje X:
- Definiciones de terminología general.
- Un modelo para describir transacciones distribuidas, estadísticas y métricas.
- Aclaraciones sobre cuestiones importantes que surgieron durante la implementación.
Este objetivo bloquea el resto del trabajo, el primer borrador debe completarse antes del 8 de mayo.
Meta: primer borrador para la especificación de datos (finalización antes del 6 de julio)
La especificación de datos define un formato de datos común para trazas y métricas; por lo tanto, los datos exportados por todos los procesos pueden ser procesados por la misma infraestructura de telemetría, independientemente del proceso de generación de datos. Esto incluye el esquema de datos para el modelo de rastreo descrito en la especificación de lenguaje cruzado. También se incluyen definiciones de metadatos para operaciones comunes que el rastreo utiliza para capturar: por ejemplo, solicitudes HTTP, errores y solicitudes de bases de datos. Estas convenciones semánticas son un ejemplo.
El primer borrador se basa en el formato de datos actual de OpenCensus y contendrá lo siguiente:
- Un esquema de datos que implementa una especificación interlenguaje.
- Definiciones de metadatos para operaciones generales.
- Definiciones JSON y Protobuf.
- Implementación de clientes de referencia.
Tenga en cuenta que también hay un protocolo por cable que distribuye trazas en banda, y que también nos gustaría estandarizar. El formato de distribución Trace-Context se está desarrollando a través del W3C.
Objetivo: paridad para todos los idiomas principales admitidos (completado antes del 6 de septiembre)
Debemos lograr la paridad para el ecosistema lingüístico actual en el orden de reemplazar proyectos antiguos por otros nuevos.
- Definiciones de interfaz para rastreo, métricas y distribución de contexto basadas en una especificación interlenguaje.
- Un SDK listo para usar que implementa estas interfaces, exportando Trace-Data. Si es posible, se creará un SDK al migrar una implementación existente desde OpenCensus.
- Kit de herramientas para bibliotecas populares actualmente cubiertas por OpenTracing y OpenCensus.
También apreciamos la compatibilidad con versiones anteriores y queremos garantizar una transición sin problemas de los proyectos existentes.
- El nuevo SDK tendrá compatibilidad con versiones anteriores de las interfaces OpenTracing actuales. Permitirán que las herramientas OpenTracing heredadas funcionen junto con nuevas herramientas en el mismo proceso, lo que permitirá a los usuarios transferir gradualmente su experiencia.
- Cuando el nuevo SDK esté listo, se creará un plan de actualización para los usuarios actuales de OpenCensus. Al igual que con OpenTracing, las herramientas heredadas pueden seguir funcionando junto con otras nuevas.
- Para noviembre, tanto OpenTracing como OpenCensus estarán cerrados por aceptar cambios. La compatibilidad con las herramientas heredadas se mantendrá durante dos años.
Crear el mejor SDK de su clase para cada idioma requiere mucho trabajo, y esto es lo que más necesitamos.
Objetivo: documentación básica (finalización antes del 6 de septiembre)
Un factor crítico de éxito para cualquier proyecto de código abierto es la documentación. Queremos herramientas de documentación y capacitación de primera clase, nuestros escritores técnicos son los desarrolladores más activos en el proyecto. La capacitación de los desarrolladores para monitorear adecuadamente el software es uno de los impactos más importantes que queremos tener en el mundo.
Las siguientes partes de la documentación son mínimas necesarias para comenzar:
- Orientación del proyecto.
- Observabilidad 101.
- Empezando
- Guías de idiomas (por separado para cada uno).
¡Invitamos a escritores de cualquier nivel! Nuestro nuevo sitio se basa en que Hugo utiliza un marcado común, por lo que es muy fácil contribuir.
Objetivo: Registro v1.0 (finalizado el 6 de julio)
El registro es otro componente crítico, una versión mejorada de OpenTracing Registry .
- Encuentre fácilmente bibliotecas, complementos, instaladores y otros componentes.
- Fácil gestión de los componentes del registro.
- Puede averiguar qué funciones de SDK están disponibles en cada idioma.
Si está interesado en el diseño, la interfaz y la experiencia de usuario, tenemos un gran proyecto para la participación personal.
Objetivo: infraestructura para pruebas y lanzamiento de software (finalización antes del 6 de septiembre)
Para que podamos seguir entregando código seguro en el que puede confiar, tenemos el compromiso del proyecto de crear canales de calidad para probar y lanzar software. Háganos saber si puede encargarse de los transportadores para realizar pruebas, medir el rendimiento y lanzar software. Indicamos claramente el nivel de preparación de la producción, y la madurez de la infraestructura de prueba será el principal factor decisivo para nosotros.
Propósito: cerrar los proyectos OpenTracing y OpenCensus (finalización antes del 6 de noviembre)
Planeamos comenzar a cerrar proyectos antiguos a partir del 6 de septiembre, si el nuevo proyecto llega a la paridad con ellos. 2 meses después, en una paridad de todos los idiomas, planeamos cerrar los proyectos OpenTracing y OpenCensus. Esto debe entenderse de la siguiente manera:
- los repositorios se congelarán, no se realizarán más ediciones.
- Se planea un período de soporte de dos años para el conjunto de herramientas actual.
- los usuarios podrán actualizar al nuevo SDK utilizando las mismas herramientas.
- La actualización gradual será posible.
Únete ahora
Estaremos encantados de cualquier ayuda, ya que este es un gran proyecto. Si está interesado en aprender sobre la observabilidad, ¡ahora es el momento!