Fusionando OpenTracing y OpenCensus: el camino hacia la convergencia

Fusionando OpenTracing y OpenCensus: el camino hacia la convergencia

Autores: Ted Young, Pritam Shah y el Comité de Especificaciones Técnicas (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev y Yuri Shkuro).

El proyecto conjunto adquirió el nombre: http://opentelemetry.io

Muy, muy brevemente:

  • Estamos creando un nuevo conjunto unificado de bibliotecas y especificaciones para capacidades de monitoreo de telemetría. Fusionará los proyectos OpenTracing y OpenCensus y proporcionará una ruta compatible para la migración.
  • La implementación de referencia en Java estará disponible el 24 de abril y el trabajo en implementaciones en otros lenguajes comenzará en su totalidad el 8 de mayo de 2019. Ver el horario aquí.
  • Para septiembre de 2019, está prevista la paridad con los proyectos existentes para C#, Golang, Java, NodeJS y Python. Tenemos mucho trabajo por delante, pero podemos afrontarlo si trabajamos en paralelo. Si está interesado en participar en este proyecto, regístrese y díganos cómo le gustaría contribuir.
  • Una vez madura la implementación en cada idioma, se cerrarán los proyectos OpenTracing y OpenCensus correspondientes. Esto significa que los proyectos antiguos se congelarán y el nuevo proyecto seguirá admitiendo las herramientas existentes durante dos años mediante compatibilidad con versiones anteriores.

Descripción general del proyecto

Fusionando OpenTracing y OpenCensus: el camino hacia la convergencia

¡Estamos haciendo una fusión! El objetivo final es reunir 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 ensamblaje tradicional de bibliotecas que implementan estas interfaces en forma de las llamadas. SDK. La guinda del pastel serán los estándares recomendados para protocolos de datos y cables, incluidas 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 software backend comercial.

Principales eventos

24.04/XNUMX: Candidato de referencia enviado para revisión.
8.05 — Se forma un equipo y comienza a trabajar en todos los idiomas.
20.05 — Lanzamiento oficial del proyecto en Kubecon Barcelona.
6.09: las implementaciones en C#, Golang, Java, NodeJS y Python alcanzan la paridad con sus contrapartes.
6.11 - Finalización oficial de los proyectos OpenTracing y OpenCensus.
20.11 — Fiesta de despedida en honor a la finalización de proyectos en la Cumbre de Observabilidad, Kubecon San Diego.

Cronología de la convergencia

Fusionando OpenTracing y OpenCensus: el camino hacia la convergencia

La migración para cada idioma incluye una compilación de SDK lista para producción, herramientas para bibliotecas populares, documentación, CI, herramientas de compatibilidad con versiones anteriores y el cierre de los proyectos relacionados OpenCensus y OpenTracing (“sunset”). Nos fijamos un objetivo ambicioso para septiembre de 2019: lograr la paridad para los lenguajes C#, Golang, Java, NodeJS y Python. Moveremos la fecha de finalización hasta que todos los idiomas estén listos. Pero es preferible evitarlo.
Al ver los objetivos, considere su participación personal, háganoslo saber completando formulario de inscripción, o saludando en los chats de Gitter de los proyectos. Seguimiento abierto и censo abierto. Puedes ver el gráfico como una infografía. aquí.

Objetivo: Primer borrador de la especificación en varios idiomas (finalización antes del 8 de mayo)

Es importante trabajar de forma coherente, incluso cuando se trabaja en paralelo en diferentes idiomas. La especificación en varios idiomas proporciona orientación para el proyecto. Suena prosaico, pero garantiza el soporte de un sistema coherente que resulta familiar independientemente del lenguaje de programación.

Requisitos obligatorios para el primer borrador de especificación para el idioma 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 estar terminado antes del 8 de mayo.

Meta: primer borrador para la especificación de datos (finalizado antes del 6 de julio)

La especificación de datos define un formato de datos común para seguimientos y métricas, de modo que los datos exportados por todos los procesos puedan 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 seguimiento descrito en la especificación en varios idiomas. También se incluyen definiciones de metadatos para operaciones comunes que el seguimiento utiliza para capturar, como solicitudes HTTP, errores y consultas de bases de datos. Estos 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 en varios idiomas.
  • Definiciones de metadatos para operaciones comunes.
  • Definiciones JSON y Protobuf.
  • Implantación de clientes de referencia.

Tenga en cuenta que también existe un protocolo por cable que distribuye trazas en banda, que también nos gustaría estandarizar. Formato de distribución Contexto de seguimiento desarrollado a través del W3C.

Objetivo: paridad en todos los principales idiomas admitidos (finalización antes del 6 de septiembre)

Debemos lograr la paridad para el ecosistema lingüístico actual reemplazando proyectos antiguos por otros nuevos.

  • Definiciones de interfaz para seguimiento, métricas y propagación de contexto basadas en una especificación en varios idiomas.
  • Un SDK listo para usar que implementa estas interfaces y exporta Trace-Data. Cuando sea posible, el SDK se creará trasladando una implementación existente de OpenCensus.
  • Kit de herramientas para bibliotecas populares actualmente cubiertas en OpenTracing y OpenCensus.

También valoramos la compatibilidad con versiones anteriores y queremos garantizar una transición sin problemas desde los proyectos existentes.

  • El nuevo SDK será compatible con las interfaces OpenTracing actuales. Permitirán que las herramientas OpenTracing heredadas se ejecuten junto con herramientas nuevas en el mismo proceso, lo que permitirá a los usuarios migrar su trabajo con el tiempo.
  • 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 podrán seguir funcionando junto con las nuevas.
  • Para noviembre, tanto OpenTracing como OpenCensus dejarán de aceptar cambios. La compatibilidad con versiones anteriores de herramientas heredadas será compatible durante dos años.

Crear el mejor SDK de su clase para cada idioma requiere mucho trabajo y eso es lo que más necesitamos.

Objetivo: documentación básica (finalización antes del 6 de septiembre)

Un factor crítico en el éxito de cualquier proyecto de código abierto es la documentación. Queremos documentación y herramientas de capacitación de primer nivel, y nuestros redactores técnicos son los desarrolladores más activos del proyecto. Enseñar a los desarrolladores cómo monitorear adecuadamente el software es uno de los impactos más importantes que queremos tener en el mundo.

La siguiente documentación es el mínimo requerido para comenzar:

  • Orientación del proyecto.
  • Observabilidad 101.
  • Inicio de obra.
  • Guías de idiomas (por separado para cada uno).

¡Escritores de todos los niveles son bienvenidos! Nuestro nuevo sitio está basado en Hugo y utiliza marcado regular, por lo que es bastante fácil contribuir.

Objetivo: Registro v1.0 (finalización antes del 6 de julio)

Registro: otro componente crítico, una versión mejorada Registro OpenTracing.

  • Es fácil encontrar bibliotecas, complementos, instaladores y otros componentes.
  • Fácil gestión de los componentes del Registro.
  • Puede averiguar qué funciones del SDK están disponibles en cada idioma.

Si estás interesado en diseño, interfaz y UX, tenemos un excelente proyecto para participación personal.

Objetivo: infraestructura para pruebas y lanzamiento de software (finalización antes del 6 de septiembre)

Para garantizar que sigamos entregando código seguro en el que pueda confiar, tenemos un compromiso de diseño para crear procesos de lanzamiento y pruebas de software de calidad. Háganos saber si puede encargarse de los procesos de prueba, caracterización y lanzamiento de software. Indicamos claramente el nivel de preparación para la producción y la madurez de la infraestructura de prueba será el principal factor decisivo para nosotros.

Objetivo: cerrar los proyectos OpenTracing y OpenCensus (finalización antes del 6 de noviembre)

Planeamos comenzar a cerrar proyectos antiguos el 6 de septiembre, si el nuevo proyecto alcanza la paridad con ellos. 2 meses después, con paridad de todos los idiomas, planeamos cerrar los proyectos OpenTracing y OpenCensus. Debe entenderse así:

  • los repositorios se congelarán y no se realizarán más cambios.
  • El conjunto de herramientas actual tiene previsto un período de soporte de dos años.
  • Los usuarios podrán actualizar al nuevo SDK utilizando las mismas herramientas.
  • Será posible una actualización gradual.

Únete

Agradeceremos cualquier ayuda ya que este es un proyecto enorme. Si estás interesado en aprender sobre la observabilidad, ¡ahora es el momento!

Fuente: habr.com

Añadir un comentario