A fusão do OpenTracing e do OpenCensus: o caminho para a convergência


Autores: Ted Young, Pritam Shah e o Comitê de Especificações Técnicas (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev e Yuri Shkuro).


O projeto conjunto adquiriu o nome: http://opentelemetry.io


Muito, muito curto:


  • Estamos criando um novo conjunto unificado de bibliotecas e especificações para a possibilidade de monitorar a telemetria. Ele combinará os projetos OpenTracing e OpenCensus e também fornecerá uma maneira suportada de migração.
  • A implementação de referência em Java estará disponível em 24 de abril, o trabalho em implementações em outros idiomas começará na íntegra a partir de 8 de maio de 2019. Você pode ver a programação aqui .
  • Até setembro de 2019, a paridade é planejada com projetos existentes para C #, Golang, Java, NodeJS e Python. Muito trabalho nos espera, mas podemos lidar com isso se trabalharmos em paralelo. Se você estiver interessado em participar deste projeto, registre-se e deixe-nos saber como você gostaria de contribuir.
  • Quando a implementação em cada idioma amadurecer, os projetos OpenTracing e OpenCensus correspondentes serão fechados. Isso significa congelar projetos antigos, e o novo projeto continuará suportando as ferramentas existentes por dois anos, usando compatibilidade com versões anteriores.

Visão Geral do Projeto



Estamos nos fundindo! O objetivo mais alto é colocar os projetos OpenTracing e OpenCensus em um projeto comum.
O núcleo do novo projeto será um conjunto de interfaces limpas e bem pensadas, incluindo a montagem tradicional de bibliotecas que implementam essas interfaces na forma das chamadas SDK A cereja no topo do bolo serão os padrões recomendados para protocolos de dados e cabos, incluindo peças de infraestrutura comuns.
O resultado será um sistema completo de telemetria adequado para monitorar microsserviços e outros tipos de sistemas distribuídos modernos, compatível com a maioria dos principais programas de OSS e comerciais.


Eventos principais


24 de abril - Um candidato de referência é enviado para revisão.
8.05 - Uma equipe é formada, começando a trabalhar em todos os idiomas.
20.05 - Lançamento oficial do projeto em Kubecon Barcelona.
6.09 - Implementações em C #, Golang, Java, NodeJS e Python alcançam paridade com os pares.
6.11 - A conclusão oficial dos projetos OpenTracing e OpenCensus.
11.20 - Festa de despedida em homenagem à conclusão dos projetos na Cúpula de Observabilidade, Kubecon San Diego.


Linha do tempo da convergência



A migração para cada idioma inclui um assembly SDK pronto para implantação industrial, ferramentas para bibliotecas populares, documentação, IC, ferramentas de compatibilidade com versões anteriores e o fechamento de projetos relacionados ao OpenCensus e OpenTracing (pôr do sol). Estabelecemos uma meta ambiciosa para setembro de 2019 - alcançar paridade para os idiomas C #, Golang, Java, NodeJS e Python. Mudaremos a data do pôr do sol até que todos os idiomas estejam prontos. Mas é preferível evitar isso.
Ao visualizar objetivos, pense em sua participação pessoal, informe-nos preenchendo o formulário de registro ou cumprimentando-se nos chats Gitter dos projetos OpenTracing e OpenCensus . Veja o gráfico como um infográfico aqui .


Meta: primeiro rascunho de uma especificação entre idiomas (conclusão em 8 de maio)


É importante trabalhar juntos, mesmo trabalhando paralelamente em diferentes idiomas. Uma especificação entre idiomas fornece orientação para o projeto. Parece prosaico, mas é uma garantia de suporte a um sistema holístico que parece familiar, independentemente da linguagem de programação.


Requisitos obrigatórios para o primeiro projeto de especificação para o idioma X:


  • Definições de terminologia geral.
  • Um modelo para descrever transações distribuídas, estatísticas e métricas.
  • Esclarecimentos sobre questões importantes que surgiram durante a implementação.

Esse objetivo bloqueia o restante do trabalho; o primeiro rascunho deve ser concluído até 8 de maio.


Meta: primeiro rascunho para especificação de dados (conclusão em 6 de julho)


A especificação de dados define um formato de dados comum para rastreamentos e métricas, para que os dados exportados por todos os processos possam ser processados ​​pela mesma infraestrutura de telemetria, independentemente do processo de geração de dados. Isso inclui o esquema de dados para o modelo de rastreio descrito na especificação em vários idiomas. Também estão incluídas definições de metadados para operações comuns que o rastreio usa para capturar: por exemplo, solicitações HTTP, erros e solicitações de banco de dados. Essas convenções semânticas são um exemplo.


O primeiro rascunho é baseado no atual formato de dados do OpenCensus e conterá o seguinte:


  • Um esquema de dados implementando uma especificação entre idiomas.
  • Definições de metadados para operações gerais.
  • Definições de JSON e Protobuf.
  • Implementação de clientes de referência.

Observe que também há um protocolo com fio que distribui rastreamentos em banda e que também gostaríamos de padronizar. O formato de distribuição Trace-Context está sendo desenvolvido pelo W3C.


Meta: paridade para todos os principais idiomas suportados (concluída em 6 de setembro)


Devemos alcançar paridade para o atual ecossistema de idiomas na ordem de substituir projetos antigos por novos.


  • Definições de interface para rastreamento, métricas e distribuição de contexto com base em uma especificação entre idiomas.
  • Um SDK pronto para usar que implementa essas interfaces, exportando dados de rastreamento. Se possível, um SDK será criado migrando uma implementação existente do OpenCensus.
  • Kit de ferramentas para bibliotecas populares atualmente cobertas pelo OpenTracing e OpenCensus.

Também apreciamos a compatibilidade com versões anteriores e queremos garantir uma transição suave dos projetos existentes.


  • O novo SDK terá compatibilidade com as interfaces atuais OpenTracing. Eles permitirão que ferramentas OpenTracing legadas trabalhem em conjunto com novas ferramentas no mesmo processo, o que permitirá que os usuários transfiram gradualmente sua experiência.
  • Quando o novo SDK estiver pronto, um plano de atualização será criado para os usuários atuais do OpenCensus. Assim como no OpenTracing, as ferramentas herdadas podem continuar trabalhando junto com as novas.
  • Até novembro, o OpenTracing e o OpenCensus estarão fechados para aceitar alterações. A compatibilidade com as ferramentas herdadas será mantida por dois anos.

Criar o melhor SDK da classe para cada idioma exige muito trabalho, e é disso que mais precisamos.


Meta: documentação principal (conclusão em 6 de setembro)


Um fator crítico de sucesso para qualquer projeto de código aberto é a documentação. Queremos documentação de primeira classe e ferramentas de treinamento, nossos escritores técnicos são os desenvolvedores mais ativos do projeto. Treinar desenvolvedores para monitorar adequadamente o software é um dos impactos mais importantes que queremos ter no mundo.


As seguintes partes da documentação são mínimas necessárias para iniciar:


  • Orientação do projeto.
  • Observabilidade 101.
  • Começando.
  • Guias de idiomas (separadamente para cada um).

Convidamos escritores de qualquer nível! Nosso novo site é baseado em Hugo usando marcação comum, por isso é muito fácil contribuir.


Alvo: Registro v1.0 (conclusão em 6 de julho)


O registro é outro componente crítico, uma versão aprimorada do OpenTracing Registry .


  • Encontre facilmente bibliotecas, plugins, instaladores e outros componentes.
  • Fácil gerenciamento de componentes do Registro.
  • Você pode descobrir quais recursos do SDK estão disponíveis em cada idioma.

Se você está interessado em design, interface e UX, temos um ótimo projeto para participação pessoal.


Alvo: infraestrutura para testes e liberação de software (conclusão em 6 de setembro)


Para continuarmos fornecendo código seguro em que você pode confiar, temos um compromisso de projeto para criar pipelines de qualidade para testar e liberar software. Informe-nos se você pode cuidar dos transportadores para testar, medir o desempenho e liberar software. Indicamos claramente o nível de prontidão da produção e a maturidade da infraestrutura de teste será o principal fator decisivo para nós.


Objetivo: fechar os projetos OpenTracing e OpenCensus (conclusão em 6 de novembro)


Planejamos começar a fechar projetos antigos a partir de 6 de setembro, se o novo projeto atingir a paridade com eles. Dois meses depois, com paridade de todos os idiomas, planejamos encerrar os projetos OpenTracing e OpenCensus. Isso deve ser entendido da seguinte maneira:


  • repositórios serão congelados, não serão feitas mais edições.
  • Está previsto um período de suporte de dois anos para o kit de ferramentas atual.
  • os usuários poderão atualizar para o novo SDK usando as mesmas ferramentas.
  • atualização gradual será possível.

Inscreva-se agora


Ficaremos felizes por qualquer ajuda, pois este é um projeto enorme. Se você está interessado em aprender sobre observabilidade, agora é a hora!


Source: https://habr.com/ru/post/pt464001/


All Articles