Distribuições

Uma distribuição, que não deve ser confundida com um fork, é uma versão customizada de um componente do OpenTelemetry.

Os projetos do OpenTelemetry consistem de múltiplos componentes que suportam múltiplos sinais. As implementações de referência do OpenTelemetry estão disponíveis em:

Qualquer implementação de referência pode ser customizada como uma distribuição.

O que é uma distribuição?

Uma distribuição é uma versão customizada de um componente do OpenTelemetry. Uma distribuição é um encapsulamento em torno de um repositório do OpenTelemetry com algumas customizações. Distribuições não devem ser confundidas com forks.

As customizações em uma distribuição podem incluir:

  • Scripts para facilitar ou customizar o uso de um backend ou fornecedor específico
  • Alterações nas configurações padrão que são necessárias para um backend, fornecedor ou usuário final
  • Pacotes ou bibliotecas adicionais que podem ser específicas para determinado fornecedor ou usuário final
  • Cobertura adicional de testes, performance e segurança além do fornecido pelo OpenTelemetry
  • Funcionalidades adicionais além do que já é fornecido pelo OpenTelemetry
  • Remoção de funcionalidades fornecidas pelo OpenTelemetry

As distribuições geralmente se enquadram nas seguintes categorias:

  • “Pura”: Estas distribuições fornecem as mesmas funcionalidades da versão pública e são 100% compatíveis. As customizações normalmente aprimoram a facilidade de uso ou configurações. Estas customizações podem ser específicas para backends, fornecedores ou usuários finais.
  • “Plus”: Estas distribuições oferecem funcionalidades adicionais ao que é encontrado na upstream, através de componentes adicionais. Exemplos incluem bibliotecas de instrumentação ou exportadores de fornecedores que não foram incluídos na upstream do OpenTelemetry.
  • “Minus”: Estas distribuições fornecem um subconjunto de funcionalidades da upstream. Exemplos podem incluir a remoção de bibliotecas de instrumentação ou de receivers, processors, exporters ou extensions encontradas no projeto do OpenTelemetry Collector. Estas distribuições podem ser fornecidas por questão de suporte e/ou temas relacionados à segurança.

Quem pode criar uma distribuição?

Qualquer pessoa pode criar uma distribuição. Atualmente, diversos fornecedores oferecem distribuições. Além disso, usuários finais podem considerar criar uma distribuição caso queiram usar componentes do Registry que não foram incluídos na upstream do projeto do OpenTelemetry.

Contribuição ou distribuição?

Antes de continuar e aprender como criar sua própria distribuição, pergunte a si mesmo se as suas adições a um determinado componente do OpenTelemetry seriam benéficas para todos e, portanto, deveriam ser incluídas nas implementações de referência:

  • Os seus scripts para “facilitar o uso” podem ser generalizados?
  • Suas alterações nas configurações padrão podem ser a melhor opção para todos?
  • Os seus pacotes ou bibliotecas adicionais são realmente específicos?
  • Sua cobertura de testes, performance ou segurança também funcionarão nas implementações de referência?
  • Você verificou com a comunidade se as suas funcionalidades ou comportamentos adicionais podem se tornar parte do padrão?

Criando a sua própria distribuição

Collector

Um guia sobre como criar a sua própria distribuição está disponível nesta publicação do blog: “Building your own OpenTelemetry Collector distribution”

Caso você esteja criando a sua própria distribuição, o OpenTelemetry Collector Builder pode ser um bom ponto de partida.

Bibliotecas de instrumentação específicas para cada linguagem de programação

Existem algumas linguagens de programação que exigem mecanismos de extensibilidade específicos para a customização das bibliotecas de instrumentação:

Siga as diretrizes

Ao utilizar materiais relacionados ao projeto do OpenTelemetry para distribuição, como logotipo e nome, certifique-se de estar alinhado com as Diretrizes de Marketing do OpenTelemetry para Organizações Contribuintes.

O projeto do OpenTelemetry não certifica distribuições neste momento. No futuro, o OpenTelemetry poderá certificar distribuições e parceiros de maneira semelhante ao que ocorre no projeto Kubernetes. Ao avaliar uma distribuição, assegure-se de que seu uso não irá resultar em uma dependência de fornecedor (vendor lock-in).

Qualquer suporte para uma distribuição deve ser fornecido diretamente por quem a criou e não pelas pessoas envolvidas no projeto do OpenTelemetry.