Fusionando OpenTracing e OpenCensus: o camiño cara á converxencia

Fusionando OpenTracing e OpenCensus: o camiño cara á converxencia

Autores: Ted Young, Pritam Shah e o Comité de especificacións técnicas (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev e Yuri Shkuro).

O proxecto conxunto adquiriu o nome: http://opentelemetry.io

Moi, moi brevemente:

  • Estamos creando un novo conxunto unificado de bibliotecas e especificacións para as capacidades de monitorización de telemetría. Combinará os proxectos OpenTracing e OpenCensus e proporcionará un camiño compatible para a migración.
  • A implementación de referencia en Java estará dispoñible o 24 de abril e o traballo en implementacións noutros idiomas comezará na súa totalidade o 8 de maio de 2019. Ver a programación pode estar aquí.
  • Para setembro de 2019, está prevista a paridade cos proxectos existentes para C#, Golang, Java, NodeJS e Python. Queda moito traballo por diante, pero podemos facer fronte se traballamos en paralelo. Se estás interesado en participar neste proxecto, rexístrate e indícanos como queres contribuír.
  • Unha vez madurada a implantación en cada idioma, pecharanse os correspondentes proxectos OpenTracing e OpenCensus. Isto significa que os proxectos antigos quedarán conxelados e o novo proxecto continuará apoiando as ferramentas existentes durante dous anos utilizando compatibilidade con versións anteriores.

Descrición xeral do proxecto

Fusionando OpenTracing e OpenCensus: o camiño cara á converxencia

Estamos facendo unha fusión! O obxectivo final é reunir os proxectos OpenTracing e OpenCensus nun proxecto común.
O núcleo do novo proxecto será un conxunto de interfaces limpas e pensadas, incluíndo a tradicional montaxe de bibliotecas que implementan estas interfaces en forma de chamadas. SDK. A guinda do pastel serán os estándares recomendados para os protocolos de datos e cables, incluíndo partes comúns da infraestrutura.
O resultado será un sistema de telemetría completo axeitado para supervisar microservizos e outros tipos de modernos sistemas distribuídos, compatible coa maioría dos principais OSS e software de backend comercial.

Eventos clave

24.04/XNUMX — Candidato de referencia presentado para revisión.
8.05 — Fórmase un equipo e comeza a traballar en todos os idiomas.
20.05 — Presentación oficial do proxecto en Kubecon Barcelona.
6.09 - As implementacións en C#, Golang, Java, NodeJS e Python alcanzan a paridade coas súas contrapartes.
6.11 - Finalización oficial dos proxectos OpenTracing e OpenCensus.
20.11 — Festa de despedida na honra da finalización dos proxectos no Observability Summit, Kubecon San Diego.

Cronograma de converxencia

Fusionando OpenTracing e OpenCensus: o camiño cara á converxencia

A migración para cada idioma inclúe unha compilación de SDK lista para a produción, ferramentas para bibliotecas populares, documentación, CI, ferramentas de compatibilidade con versións anteriores e o peche dos proxectos relacionados con OpenCensus e OpenTracing ("atardecer"). Fixemos un obxectivo ambicioso para setembro de 2019: lograr a paridade para as linguaxes C#, Golang, Java, NodeJS e Python. Apostaremos a data do solpor ata que todos os idiomas estean listos. Pero é preferible evitar isto.
Ao ver os obxectivos, ten en conta a túa implicación persoal, infórmanos completando formulario de inscrición, ou dicindo ola nos chats de Gitter dos proxectos OpenTracing и OpenCensus. Podes ver o gráfico como unha infografía aquí.

Obxectivo: primeiro borrador da especificación multilingüe (completado o 8 de maio)

É importante traballar de forma cohesionada, aínda que se traballe en paralelo en diferentes idiomas. A especificación multilingüe proporciona orientación para o proxecto. Parece prosaico, pero garante o soporte para un sistema coherente que se sente familiar independentemente da linguaxe de programación.

Requisitos obrigatorios para o primeiro borrador de especificacións para a lingua X:

  • Definicións de terminoloxía xeral.
  • Un modelo para describir transaccións distribuídas, estatísticas e métricas.
  • Aclaracións sobre cuestións importantes xurdidas durante a execución.

Este obxectivo está a bloquear o resto da obra, o primeiro borrador debe estar rematado o 8 de maio.

Obxectivo: primeiro borrador da especificación de datos (completado o 6 de xullo)

A especificación de datos define un formato de datos común para trazos e métricas para que os datos exportados por todos os procesos poidan ser procesados ​​pola mesma infraestrutura de telemetría independentemente do proceso de xeración de datos. Isto inclúe o esquema de datos para o modelo de traza descrito na especificación multilingüe. Tamén se inclúen definicións de metadatos para operacións comúns que o rastrexo usa para capturar, como solicitudes HTTP, erros e consultas de bases de datos. Estes convencións semánticas son un exemplo.

O primeiro borrador baséase no formato de datos de OpenCensus actual e conterá o seguinte:

  • Un esquema de datos que implementa unha especificación multilingüe.
  • Definicións de metadatos para operacións comúns.
  • Definicións JSON e Protobuf.
  • Implantación de clientes de referencia.

Teña en conta que tamén existe un protocolo de cables que distribúe trazos na banda, que tamén nos gustaría estandarizar. Formato de distribución Traza-Contexto desenvolvido a través do W3C.

Obxectivo: paridade en todos os idiomas admitidos (completado ata o 6 de setembro)

Debemos acadar a paridade para o actual ecosistema lingüístico substituíndo proxectos antigos por novos.

  • Definicións de interface para rastrexo, métricas e propagación de contexto baseadas nunha especificación multilingüe.
  • Un SDK listo para usar que implementa estas interfaces e exporta Trace-Data. Cando sexa posible, o SDK crearase portando unha implementación existente de OpenCensus.
  • Kit de ferramentas para bibliotecas populares cubertas actualmente en OpenTracing e OpenCensus.

Tamén valoramos a compatibilidade con versións anteriores e queremos garantir unha transición suave dos proxectos existentes.

  • O novo SDK será compatible con versións anteriores coas interfaces de OpenTracing actuais. Permitirán que as ferramentas antigas de OpenTracing funcionen xunto con ferramentas novas no mesmo proceso, permitindo aos usuarios migrar o seu traballo ao longo do tempo.
  • Cando o novo SDK estea listo, crearase un plan de actualización para os usuarios actuais de OpenCensus. Do mesmo xeito que con OpenTracing, as ferramentas antigas poderán seguir traballando xunto ás novas.
  • En novembro, tanto OpenTracing como OpenCensus estarán pechados para aceptar cambios. A compatibilidade con versións anteriores coas ferramentas antigas será compatible durante dous anos.

Crear un SDK de mellor calidade para cada idioma require moito traballo, e iso é o que máis necesitamos.

Obxectivo: documentación básica (remate ata o 6 de setembro)

Un factor crítico no éxito de calquera proxecto de código aberto é a documentación. Queremos documentación e ferramentas de formación de primeiro nivel, e os nosos escritores técnicos son os desenvolvedores máis activos do proxecto. Ensinar aos desenvolvedores a supervisar correctamente o software é un dos impactos máis importantes que queremos ter no mundo.

Os seguintes documentos son o mínimo necesario para comezar:

  • Orientación do proxecto.
  • Observabilidade 101.
  • Comezo do traballo.
  • Guías lingüísticas (por separado para cada unha).

Os escritores de todos os niveis son benvidos! O noso novo sitio está baseado en Hugo, usando marcas regulares, polo que é moi sinxelo contribuír.

Obxectivo: Rexistro v1.0 (completado o 6 de xullo)

Rexistro - outro compoñente crítico, unha versión mellorada Rexistro OpenTracing.

  • É doado atopar bibliotecas, complementos, instaladores e outros compoñentes.
  • Fácil xestión dos compoñentes do Rexistro.
  • Podes descubrir que funcións do SDK están dispoñibles en cada idioma.

Se che interesa o deseño, a interface e a UX, temos un excelente proxecto de participación persoal.

Obxectivo: infraestrutura para probas e lanzamento de software (finalización ata o 6 de setembro)

Para garantir que seguimos ofrecendo código seguro no que pode confiar, temos un compromiso de deseño para crear probas de software de calidade e canalizacións de lanzamento. Indícanos se podes ocuparte das canalizacións para probas, caracterización e lanzamento de software. Indicamos claramente o nivel de preparación para a produción e a madurez da infraestrutura de proba será o principal factor decisivo para nós.

Obxectivo: pechar os proxectos OpenTracing e OpenCensus (finalización ata o 6 de novembro)

Temos previsto comezar a pechar proxectos antigos o 6 de setembro, se o novo proxecto alcanza a paridade con eles. 2 meses despois, con paridade de todos os idiomas, pensamos pechar os proxectos OpenTracing e OpenCensus. Debe entenderse deste xeito:

  • os repositorios quedarán conxelados e non se farán máis cambios.
  • O conxunto de ferramentas actual ten previsto un período de apoio de dous anos.
  • os usuarios poderán actualizar ao novo SDK usando as mesmas ferramentas.
  • Será posible unha actualización gradual.

Únete a nós

Agradeceremos calquera axuda porque este é un proxecto enorme. Se estás interesado en coñecer a observabilidade, agora é o momento!

Fonte: www.habr.com

Engadir un comentario