
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!