OpenTelemetry: Como funciona este Protocolo Open Source?
A fragmentação das ferramentas de monitoramento sempre foi o “Calcanhar de Aquiles” das equipes de DevOps e SRE. Historicamente, se você quisesse monitorar uma aplicação Java, usava o agente proprietário do fornecedor A. Se migrasse para Node.js ou mudasse de ferramenta de APM, precisava reescrever toda a instrumentação, trocando bibliotecas e agentes. Esse cenário gerava o temido Vendor Lock-in e silos de dados que não conversavam entre si.
Para resolver esse caos de interoperabilidade, a Cloud Native Computing Foundation (CNCF) — a mesma organização por trás do Kubernetes — incubou o projeto que se tornou o padrão global para telemetria: o OpenTelemetry (frequentemente abreviado como OTel).
Neste artigo técnico, vamos explorar a arquitetura do OpenTelemetry, como ele unifica a coleta de dados e por que ele se tornou a decisão arquitetural mais segura para estratégias modernas de observabilidade.
O que é OpenTelemetry?
O OpenTelemetry é um conjunto de APIs, SDKs, bibliotecas e integrações que padronizam a geração, coleta e exportação de dados de telemetria (métricas, logs e traces). Ele nasceu da fusão de dois projetos anteriores: o OpenTracing (focado em rastreamento distribuído) e o OpenCensus (liderado pelo Google).
Diferente de ferramentas de monitoramento comerciais (como Datadog, New Relic ou a própria plataforma da OpServices), o OpenTelemetry não é um backend de armazenamento ou visualização. Ele não possui dashboards. Sua função é ser a “camada de encanamento” universal. Ele extrai os dados da aplicação de forma agnóstica e os envia para qualquer ferramenta de análise que você desejar.
Para engenheiros, isso significa liberdade. Você instrumenta seu código uma única vez usando o padrão OTel. Se decidir trocar sua ferramenta de visualização no futuro, basta alterar uma configuração no exportador, sem tocar em uma única linha de código da aplicação.

Os Três Sinais da Observabilidade no OTel
O OpenTelemetry foi desenhado para suportar os três pilares fundamentais da observabilidade de forma coesa, permitindo a correlação nativa entre eles:
1. Tracing (Rastreamento Distribuído)
O foco principal inicial do projeto. O OTel permite rastrear a jornada de uma requisição através de microsserviços, filas e bancos de dados. Ele padroniza a propagação de contexto (usando o padrão W3C Trace Context), garantindo que, mesmo em arquiteturas poliglotas (Java chamando Go, que chama Python), o rastro da transação (trace) não se perca.
2. Métricas
O OTel define um modelo robusto para métricas (contadores, medidores, histogramas). Ele resolve o problema da conversão de formatos, permitindo que você colete métricas no formato OTel e as exporte automaticamente para o formato do Prometheus, por exemplo, sem a necessidade de múltiplos exporters rodando na máquina.
3. Logs
O pilar mais recente a atingir estabilidade. O objetivo é permitir que os logs sejam coletados junto com traces e métricas, compartilhando metadados comuns (como service.name ou container.id). Isso facilita a correlação: ao ver um pico de latência em um gráfico (métrica), você clica e vê o trace correspondente, e dentro do trace, acessa os logs daquele momento específico.
A Arquitetura: OTel Collector
Embora você possa enviar dados diretamente da sua aplicação para o backend, a arquitetura recomendada envolve o uso do OpenTelemetry Collector. Este componente é um binário que funciona como um proxy ou intermediário de processamento de dados.
O Collector é extremamente poderoso para equipes de SRE porque permite manipular os dados antes de armazená-los. Sua pipeline consiste em três estágios:
- Receivers (Receptores): Aceitam dados em vários formatos (OTLP, Jaeger, Prometheus, Zipkin). Isso permite que você continue usando instrumentações legadas enquanto migra para o OTel.
- Processors (Processadores): Transformam os dados. Aqui você pode anonimizar dados sensíveis (PII), adicionar tags de infraestrutura (como região da AWS), fazer amostragem (sampling) para reduzir custos ou agrupar métricas.
- Exporters (Exportadores): Enviam os dados processados para um ou mais backends. Você pode, por exemplo, enviar a mesma métrica simultaneamente para o Prometheus (para alertas operacionais) e para um Data Lake (para análise histórica de longo prazo).
Essa flexibilidade desacopla a produção dos dados do consumo dos dados, criando uma infraestrutura de monitoramento resiliente e adaptável.
Instrumentação: Automática vs. Manual
O OpenTelemetry oferece duas abordagens principais para extrair dados das aplicações:
Auto-Instrumentation (Zero-Code)
Para linguagens como Java, .NET, Python e Node.js, o OTel fornece agentes que se acoplam à aplicação em tempo de execução. Eles injetam automaticamente código de monitoramento em bibliotecas populares (como Spring Boot, Flask, Express, JDBC).
É a maneira mais rápida de começar: basta adicionar o agente na inicialização e você começa a ver traces de chamadas HTTP e queries de banco de dados imediatamente.
Manual Instrumentation
Para cenários onde você precisa de dados de negócio específicos (ex: “valor do carrinho de compras” ou “usuário premium processado”), você usa a API do OTel diretamente no código.
Exemplo conceitual:
tracer.startSpan("processar_pedido").setAttribute("cliente_id", "12345");
Isso enriquece a telemetria com contexto que nenhum agente automático conseguiria adivinhar.
Por que o Mercado está Padronizando no OTel?
A adoção do OpenTelemetry está crescendo exponencialmente por razões estratégicas e técnicas:
- Interoperabilidade: Grandes players de nuvem (AWS, Azure, Google Cloud) e fornecedores de APM já suportam nativamente o protocolo OTLP (OpenTelemetry Protocol).
- Controle de Dados: Com o Collector, você decide o que enviar e para onde. Você pode filtrar dados ruidosos na origem, reduzindo drasticamente os custos de ingestão em ferramentas pagas.
- Comunidade Ativa: Sendo um projeto da CNCF, ele tem milhares de contribuintes. O suporte a novas tecnologias e frameworks surge muito mais rápido do que em ferramentas proprietárias fechadas.
Para saber mais sobre a especificação técnica e o status de cada linguagem, a documentação oficial em opentelemetry.io é a fonte definitiva.
Conclusão
O OpenTelemetry não é apenas mais uma ferramenta; é uma mudança de paradigma. Ele commoditiza a coleta de dados, permitindo que as empresas foquem no que realmente importa: a análise desses dados e a tomada de decisão.
Ao adotar o OpenTelemetry, sua organização constrói uma fundação de observabilidade à prova de futuro, livre de amarras contratuais com fornecedores e pronta para a complexidade das arquiteturas de microsserviços e nuvem híbrida. Se você ainda depende de agentes proprietários fechados, o momento de planejar sua migração é agora.
Caso tenha interesse em conhecer mais sobre nossos modelos comerciais e como podemos apoiar a implementação de uma arquitetura de observabilidade baseada em OpenTelemetry, fale com nossos especialistas.
