
Autores: Ted Young, Pritham Shah e o 'Comitê de Especificações Técnicas' (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev e Yuri Shkuro).
O projeto conjunto ganhou o nome de:
Muito, muito resumidamente:
- Estamos criando um novo conjunto unificado de bibliotecas e especificações para permitir a observabilidade de telemetria. Ele combinará os projetos OpenTracing e OpenCensus, além de fornecer um meio suportado para migração.
- A implementação de referência em Java estará disponível em 24 de abril, e o trabalho nas implementações em outras linguagens começará em total capacidade em 8 de maio de 2019. Confira o cronograma .
- Até setembro de 2019, está prevista a paridade com os projetos existentes para C#, Golang, Java, NodeJS e Python. Temos muito trabalho pela frente, mas vamos conseguir se trabalharmos paralelamente. Se você estiver interessado em participar deste projeto, por favor, registre-se e nos informe como gostaria de contribuir.
- Quando a implementação em cada linguagem estiver madura, os projetos correspondentes OpenTracing e OpenCensus serão descontinuados. Isso significa o congelamento dos projetos antigos, enquanto o novo projeto continuará a suportar as ferramentas existentes por dois anos, garantindo compatibilidade retroativa.
Visão Geral do Projeto

Estamos realizando uma unificação! O objetivo principal é reunir os projetos OpenTracing e OpenCensus em um único projeto comum.
O núcleo do novo projeto será um conjunto de interfaces limpas e bem pensadas, incluindo uma biblioteca tradicional que implementa essas interfaces na forma de SDKs. A cereja do bolo será a recomendação de padrões para dados e protocolos de transporte, incluindo componentes comuns da infraestrutura.
O resultado será um sistema de telemetria robusto, adequado para monitorar microsserviços e outros tipos de sistemas distribuídos modernos, compatível com a maioria das principais soluções de OSS e programas comerciais.
Principais Eventos
24.04 — Candidato de referência apresentado para revisão.
08.05 — A equipe está sendo formada para iniciar o trabalho em todas as linguagens.
20.05 — Lançamento oficial do projeto na Kubecon Barcelona.
06.09 — As implementações em C#, Golang, Java, NodeJS e Python atingem paridade com os equivalentes.
06.11 — Conclusão oficial dos projetos OpenTracing e OpenCensus.
20.11 — Festa de despedida em celebração ao encerramento dos projetos no Observability Summit, Kubecon San Diego.
Cronologia da Convergência
A migração para cada linguagem inclui a montagem de um SDK pronto para produção, ferramentas para bibliotecas populares, documentação, CI, mecanismos de compatibilidade retroativa e o encerramento dos projetos relacionados OpenCensus e OpenTracing («sunset»). Definimos uma meta ambiciosa para setembro de 2019 — alcançar paridade para as linguagens C#, Golang, Java, NodeJS e Python. Vamos adiar a data do ‘sunset’ até que todas as linguagens estejam prontas. No entanto, é preferível evitar isso.
Ao revisar os objetivos, por favor, considere a sua participação pessoal e nos informe preenchendo , ou dando um alô nos chats do projeto e . Você pode visualizar o cronograma em formato de infográfico .
Objetivo: primeiro rascunho da especificação inter-linguagem (conclusão até 8 de maio)
É importante trabalhar de maneira coesa, mesmo trabalhando paralelamente em diferentes linguagens. A especificação inter-linguagem fornece diretrizes para o projeto. Pode parecer prosaico, mas é uma garantia de suporte a um sistema coeso que parece familiar independentemente da linguagem de programação.
Requisitos obrigatórios para o primeiro rascunho da especificação para a linguagem X:
- Definições de terminologia comum.
- Modelo para descrever transações distribuídas, estatísticas e métricas.
- Esclarecimentos sobre questões importantes que surgiram durante a implementação.
Este objetivo bloqueia outros trabalhos, o primeiro rascunho deve ser concluído até 8 de maio.
Objetivo: primeiro rascunho para a especificação de dados (conclusão até 6 de julho)
A especificação de dados define o formato comum de dados para rastreamentos e métricas, de modo 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 rastreamento, descrito na especificação inter-linguagem. Também estão incluídas definições de metadados para operações comuns, das quais o rastreamento usa para captura: por exemplo, requisições HTTP, erros e consultas ao banco de dados. Estes são exemplos.
O primeiro rascunho é baseado no formato de dados atual do OpenCensus e conterá o seguinte:
- Esquema de dados que implementa a especificação inter-linguagem.
- Definições de metadados para operações comuns.
- Definições de JSON e Protobuf.
- Implementação de clientes de referência.
Pedimos a atenção para que também existe um protocolo com fio, distribuindo rastreamentos em faixa, e que gostaríamos de padronizar. Formato de distribuição está sendo desenvolvido pelo W3C.
Objetivo: paridade em todos os principais idiomas suportados (conclusão até 6 de setembro)
Devemos alcançar paridade para o ecossistema linguístico atual na substituição de projetos antigos por novos.
- Definições de interface para rastreamento, métricas e distribuição de contexto baseadas na especificação interlinguística.
- SDK pronto para uso, implementando essas interfaces, exportando Trace-Data. Quando possível, o SDK será criado a partir da transferência da implementação existente do OpenCensus.
- Ferramentas para bibliotecas populares cobertas atualmente no OpenTracing e OpenCensus.
Também valorizamos a compatibilidade retroativa e queremos garantir uma transição suave dos projetos existentes.
- O novo SDK terá recursos de compatibilidade retroativa com as interfaces atuais do OpenTracing. Eles permitirão que as ferramentas legadas do OpenTracing funcionem junto com as novas ferramentas no mesmo processo, permitindo que os usuários migrem gradualmente seus desenvolvimentos.
- Quando o novo SDK estiver pronto, será criado um plano de atualização para os atuais usuários do OpenCensus. Assim como no caso do OpenTracing, as ferramentas legadas poderão continuar a funcionar junto com as novas.
- Até novembro, tanto o OpenTracing quanto o OpenCensus serão fechados para receber alterações. A compatibilidade retroativa com ferramentas legadas será mantida por dois anos.
Criar um SDK de classe mundial para cada idioma requer um esforço enorme, e é exatamente isso de que mais precisamos.
Objetivo: documentação principal (conclusão até 6 de setembro)
Um fator crítico para o sucesso de qualquer projeto de código aberto é a documentação. Queremos ter documentação de primeira classe e recursos de treinamento; nossos escritores técnicos são os desenvolvedores mais ativos do projeto. Ensinar os desenvolvedores a observar corretamente o software é uma das mais importantes influências que queremos ter no mundo.
As partes mínimas necessárias para começar são:
- Orientação do projeto.
- Observabilidade 101.
- Começando.
- Guias de linguagens (separadamente para cada um).
Convidamos escritores de todos os níveis! Nosso novo site é baseado no Hugo, utilizando uma marcação simples, portanto, é muito fácil contribuir.
Objetivo: Registry v1.0 (conclusão até 6 de julho)
Registry — mais um componente crítico, uma versão aprimorada. .
- Fácil de encontrar bibliotecas, plugins, instaladores e outros componentes.
- Gerenciamento simplificado dos componentes do Registry.
- É possível saber quais funções da SDK estão disponíveis em cada linguagem.
Se você se interessa por design, interface e UX — temos um ótimo projeto para participação pessoal.
Objetivo: infraestrutura para teste e lançamento de software (conclusão até 6 de setembro)
Para que continuemos a fornecer código seguro em que se pode confiar, temos um compromisso de projeto para criar pipelines de qualidade para teste e lançamento de software. Por favor, nos avise se você pode cuidar dos pipelines para teste, medições de desempenho e lançamentos de software. Definimos claramente o nível de prontidão da produção, e a maturidade da infraestrutura de teste será um fator determinante para nós.
Objetivo: encerramento dos projetos OpenTracing e OpenCensus (conclusão até 6 de novembro)
Planejamos iniciar o encerramento dos projetos antigos a partir de 6 de setembro, caso um novo projeto alcance paridade com eles. Dois meses depois, com todos os idiomas em paridade, planejamos o encerramento dos projetos OpenTracing e OpenCensus. Isso deve ser entendido da seguinte forma:
- os repositórios serão congelados, não serão mais feitas edições.
- para a ferramenta atual, está planejado um suporte de dois anos.
- os usuários poderão atualizar para a nova SDK utilizando a ferramenta antiga.
- será possível a atualização gradual.
Junte-se a nós
Ficaremos felizes com qualquer ajuda, pois este é um projeto enorme. Se você está interessado em saber sobre observabilidade — agora é a hora!
- Preencha para participação imediata e ingresso na equipe.
- Entre em contato conosco nos canais e Gitter.
- Confira a , que está em desenvolvimento.
Fonte: habr.com
