O que é o OpenTelemetry?

Uma breve explicação sobre o que o OpenTelemetry é e não é.

O OpenTelemetry é um framework e um conjunto de ferramentas de Observabilidade projetados para criar e gerenciar dados de telemetria como rastros, métricas e logs. Um aspecto crucial do OpenTelemetry é ser agnóstico em relação a fornecedores e ferramentas, o que o possibilita ser utilizado com uma grande variedade de backends de observabilidade, incluindo ferramentas de código aberto como Jaeger e Prometheus, além de soluções comerciais.

O OpenTelemetry não é um backend de observabilidade como Jaeger, Prometheus ou outras soluções comerciais. O OpenTelemetry é focado na geração, coleta, gerenciamento e exportação de telemetria. Um dos principais objetivos do OpenTelemetry é permitir que você possa instrumentar suas aplicações ou sistemas de forma fácil, independentemente da linguagem, infraestrutura ou ambiente de execução. Crucialmente, o armazenamento e a visualização da telemetria são intencionalmente deixados para outras ferramentas.

O que é observabilidade?

Observabilidade é a capacidade de entender o estado interno de um sistema ao examinar os dados que ele emite. No contexto de software, isso significa ser capaz de entender o estado interno do sistema analisando seus dados de telemetria, que incluem rastros, métricas e logs.

Para tornar um sistema observável, ele deve ser instrumentado. Ou seja, o código deve emitir rastros, métricas ou logs. Os dados instrumentados devem então ser enviados para um backend de observabilidade.

Por que OpenTelemetry?

Com a ascensão da computação em nuvem, arquiteturas de microsserviços e requisitos de negócios cada vez mais complexos, a necessidade de observabilidade de software e infraestrutura é cada vez maior.

O OpenTelemetry atende à necessidade de observabilidade seguindo dois princípios-chave:

  1. Você tem controle total sobre os dados que gera. Não há dependência de fornecedor (vendor lock-in).
  2. Você só precisa aprender um único conjunto de APIs e convenções.

Ambos os princípios combinados dão a flexibilidade que equipes e organizações precisam no mundo da computação moderna atual.

Se você quiser saber mais, dê uma olhada na missão, visão e valores do OpenTelemetry.

Os principais componentes do OpenTelemetry

O OpenTelemetry consiste dos seguintes componentes:

O OpenTelemetry é utilizado por diversas bibliotecas, serviços e aplicativos que o integram para fornecer observabilidade por padrão.

O OpenTelemetry é suportado por inúmeros fornecedores, muitos dos quais oferecem suporte comercial para o OpenTelemetry e contribuem diretamente para o projeto.

Extensibilidade

O OpenTelemetry é projetado para ser extensível. Alguns exemplos de como ele pode ser estendido incluem:

  • Adicionar um receiver ao OpenTelemetry Collector para suportar dados de telemetria de uma fonte personalizada
  • Carregar bibliotecas de instrumentação personalizadas em um SDK
  • Criar uma distribuição de um SDK ou do Collector adaptada a um caso de uso específico
  • Criar um novo exporter para um backend personalizado que ainda não suporta o protocolo do OpenTelemetry (OTLP)
  • Criar um propagador personalizado para formatos de propagação de contexto não padronizados

Embora a maioria dos usuários possa não precisar estender o OpenTelemetry, o projeto é projetado para tornar isso possível em quase todos os níveis.

História

O OpenTelemetry é um projeto da Cloud Native Computing Foundation (CNCF) que é resultado da fusão entre dois projetos anteriores, OpenTracing e OpenCensus.

Ambos os projetos foram criados para resolver o mesmo problema: a falta de um padrão de como instrumentar o código e enviar dados de telemetria para um backend de Observabilidade. Como nenhum dos projetos conseguiu resolver o problema por completo de forma independente, eles se fundiram para formar o OpenTelemetry e combinar seus esforços para oferecer uma solução única.

Se você está atualmente utilizando OpenTracing ou OpenCensus, pode aprender como migrar para o OpenTelemetry no guia de migração.

Próximos passos