Mesclando OpenTracing e OpenCensus: o caminho para a convergência

Mesclando OpenTracing e OpenCensus: o caminho para a convergência

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

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

Muito, muito brevemente:

  • Estamos criando um novo conjunto unificado de bibliotecas e especificações para recursos de monitoramento de telemetria. Ele fundirá os projetos OpenTracing e OpenCensus e fornecerá um caminho compatível para migração.
  • A implementação de referência em Java estará disponível no dia 24 de abril, e os trabalhos de implementações em outras linguagens começarão integralmente no dia 8 de maio de 2019. Veja a programação pode estar aqui.
  • Até setembro de 2019, está planejada a paridade com projetos existentes para C#, Golang, Java, NodeJS e Python. Há muito trabalho pela frente, mas podemos enfrentá-lo se trabalharmos em paralelo. Se você estiver interessado em participar deste projeto, registre-se e diga-nos como gostaria de contribuir.
  • Assim que a implementação em cada linguagem estiver madura, os projetos OpenTracing e OpenCensus correspondentes serão encerrados. Isto significa que os projetos antigos serão congelados e o novo projeto continuará a apoiar as ferramentas existentes durante dois anos usando compatibilidade com versões anteriores.

Visão geral do projeto

Mesclando OpenTracing e OpenCensus: o caminho para a convergência

Estamos fazendo uma fusão! O objetivo final é reunir 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 tradicional montagem de bibliotecas que implementam essas interfaces na forma das chamadas. SDK. A cereja do bolo serão os padrões recomendados para protocolos de dados e fios, incluindo partes comuns da infraestrutura.
O resultado será um sistema de telemetria completo adequado para monitorar microsserviços e outros tipos de sistemas distribuídos modernos, compatível com a maioria dos principais softwares OSS e de back-end comercial.

Principais eventos

24.04/XNUMX — Candidato de referência submetido para avaliação.
8.05 — Uma equipe é formada e começa a trabalhar em todos os idiomas.
20.05 — Lançamento oficial do projeto no Kubecon Barcelona.
6.09 - Implementações em C#, Golang, Java, NodeJS e Python alcançam paridade com suas contrapartes.
6.11 - Conclusão oficial dos projetos OpenTracing e OpenCensus.
20.11hXNUMX — Festa de despedida em homenagem à conclusão dos projetos no Observability Summit, Kubecon San Diego.

Cronograma de convergência

Mesclando OpenTracing e OpenCensus: o caminho para a convergência

A migração para cada linguagem inclui uma construção de SDK pronta para produção, ferramentas para bibliotecas populares, documentação, CI, ferramentas de compatibilidade com versões anteriores e o encerramento dos projetos OpenCensus e OpenTracing relacionados (“sunset”). Estabelecemos uma meta ambiciosa para setembro de 2019: alcançar a paridade para as linguagens C#, Golang, Java, NodeJS e Python. Moveremos a data de encerramento até que todos os idiomas estejam prontos. Mas é preferível evitar isso.
Ao visualizar as metas, considere seu envolvimento pessoal, informe-nos preenchendo formulário de registro, ou dizendo olá nos chats do Gitter dos projetos Open Tracing и OpenCensus. Você pode visualizar o gráfico como um infográfico aqui.

Meta: Primeiro rascunho da especificação multilíngue (conclusão até 8 de maio)

É importante trabalhar de forma coesa, mesmo quando se trabalha em paralelo em diferentes idiomas. A especificação entre idiomas fornece orientação para o projeto. Parece prosaico, mas garante suporte para um sistema coerente que parece familiar, independentemente da linguagem de programação.

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

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

Essa meta está bloqueando o restante da obra, a primeira minuta deve ser concluída até o dia 8 de maio.

Meta: Primeiro rascunho para especificação de dados (conclusão até 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 rastreamento descrito na especificação entre linguagens. Também estão incluídas definições de metadados para operações comuns que o rastreamento usa para capturar, como solicitações HTTP, erros e consultas de banco de dados. Esses convenções semânticas são um exemplo.

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

  • Um esquema de dados que implementa uma especificação entre linguagens.
  • Definições de metadados para operações comuns.
  • Definições JSON e Protobuf.
  • Implementação de clientes de referência.

Observe que também existe um protocolo de transmissão que distribui rastreamentos em banda, que também gostaríamos de padronizar. Formato de distribuição Contexto de rastreamento desenvolvido através do W3C.

Meta: paridade entre todos os principais idiomas suportados (conclusão até 6 de setembro)

Devemos alcançar a paridade para o atual ecossistema linguístico, substituindo projetos antigos por novos.

  • Definições de interface para rastreamento, métricas e propagação de contexto com base em uma especificação entre idiomas.
  • Um SDK pronto para uso que implementa essas interfaces e exporta Trace-Data. Sempre que possível, o SDK será criado portando uma implementação existente do OpenCensus.
  • Kit de ferramentas para bibliotecas populares atualmente cobertas por OpenTracing e OpenCensus.

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

  • O novo SDK será compatível com versões anteriores das interfaces OpenTracing atuais. Eles permitirão que ferramentas legadas do OpenTracing sejam executadas junto com novas ferramentas no mesmo processo, permitindo que os usuários migrem seu trabalho ao longo do tempo.
  • Quando o novo SDK estiver pronto, um plano de atualização será criado para os usuários atuais do OpenCensus. Tal como acontece com o OpenTracing, as ferramentas legadas poderão continuar trabalhando junto com as novas.
  • Em novembro, tanto o OpenTracing quanto o OpenCensus estarão fechados para aceitar alterações. A compatibilidade retroativa com ferramentas legadas terá suporte por dois anos.

Criar o melhor SDK da categoria para cada linguagem exige muito trabalho e é disso que mais precisamos.

Meta: documentação básica (conclusão até 6 de setembro)

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

As seguintes peças de documentação são o mínimo necessário para começar:

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

Escritores de todos os níveis são bem-vindos! Nosso novo site é baseado no Hugo, usando marcação regular, então é bem fácil contribuir.

Meta: Registro v1.0 (conclusão até 6 de julho)

Registro – outro componente crítico, uma versão melhorada Registro OpenTracing.

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

Se você se interessa por design, interface e UX, temos um excelente projeto para participação pessoal.

Objetivo: infraestrutura para testes e lançamento de software (conclusão até 6 de setembro)

Para garantir que continuemos a fornecer código seguro no qual você pode confiar, temos um compromisso de design com a construção de testes de software de qualidade e pipelines de lançamento. Informe-nos se você pode cuidar dos pipelines para testes, caracterização e lançamento de software. Indicamos claramente o nível de prontidão de produção, e a maturidade da infraestrutura de testes será o principal fator decisivo para nós.

Meta: encerrar os projetos OpenTracing e OpenCensus (conclusão até 6 de novembro)

Planejamos começar a fechar projetos antigos em 6 de setembro, se o novo projeto atingir a paridade com eles. 2 meses depois, com paridade de todas as linguagens, planejamos encerrar os projetos OpenTracing e OpenCensus. Deve ser entendido desta forma:

  • os repositórios serão congelados e nenhuma alteração adicional será feita.
  • O kit de ferramentas atual tem um período de suporte planejado de dois anos.
  • os usuários poderão atualizar para o novo SDK usando as mesmas ferramentas.
  • Uma atualização gradual será possível.

Entrar

Aceitaremos qualquer ajuda, pois este é um grande projeto. Se você está interessado em aprender sobre observabilidade, agora é a hora!

Fonte: habr.com

Adicionar um comentário