O que é o OpenTelemetry?

Definição, benefícios e componentes principais do OpenTelemetry

O OpenTelemetry (OTel) é uma estrutura de observabilidade de código aberto para coletar, processar e exportar dados de telemetria (logs, métricas e rastreamentos) em um formato único e unificado.

Foi desenvolvido pela Cloud Native Computing Foundation (CNCF) para padronizar como os dados de telemetria são coletados e enviados para backends de observabilidade. O OpenTelemetry fornece SDKs, APIs e ferramentas independentes de fornecedor, para que seus dados possam ser enviados a qualquer backend de observabilidade aceito pelo OpenTelemetry para análise.

O OpenTelemetry está rapidamente se tornando o padrão de telemetria de observabilidade dominante em aplicações nativas da nuvem. A adoção do OpenTelemetry é considerada crítica para as organizações que querem estar preparadas para as demandas de dados do futuro sem estarem vinculadas a um fornecedor específico ou às limitações das tecnologias existentes.

Diagrama mostrando a integração do OpenTelemetry com o Elastic para a observabilidade de microsserviços


Entendendo dados de telemetria (logs, métricas e traces)

Os dados de telemetria são a base da observabilidade moderna. Os três pilares — log, métricas e traces — oferecem aos desenvolvedores, DevOps e equipes de TI uma visão profunda sobre o comportamento, desempenho e saúde do sistema.

  • Logs: Um registro textual de um evento isolado em um momento específico
    • Exemplo: Uma tentativa de login registrada com carimbo de data e hora, ID de usuário e endereço IP
    • Ideal para: Solução de problemas, depuração e verificação da execução do código
  • Métricas: Medições numéricas ao longo do tempo (dados de séries temporais) que refletem o desempenho do sistema
    • Exemplo: Utilização da CPU em 85% ou taxa de requisição HTTP de 1.200/s
    • Ideal para: Monitoramento em tempo real, alertas e análise de tendências
  • Rastreamentos: O percurso de uma solicitação ou transação por vários componentes do sistema, dividido em segmentos
    • Exemplo: Rastreamento de um processo de checkout em microsserviços em uma plataforma de comércio eletrônico
    • Melhor para: Identificar gargalos de desempenho e entender os fluxos de solicitação em arquiteturas distribuídas

Para obter orientações detalhadas sobre a configuração de cada tipo de telemetria com o OpenTelemetry, consulte nossa documentação sobre como começar a usar o OpenTelemetry no Elastic.


Um breve histórico do OpenTelemetry

Antes do OpenTelemery, o setor dependia de OpenTracing e OpenCensus, que eram dois projetos sobrepostos que serviam a propósitos semelhantes com implementações diferentes. Para eliminar a fragmentação, a CNCF os uniu em um único projeto: OpenTelemetry.

Principais componentes legados:

  • OpenTracing: APIs independentes de fornecedor para envio de dados de telemetria
  • OpenCensus: bibliotecas específicas de linguagem para coleta de métricas/traces

Resultado da fusão: O OTel combina ambos em um único framework com:

  • APIs
  • SDKs
  • Opções de instrumentação
  • Um serviço de coleta

O OpenTelemetry surgiu da unificação do OpenTracing e do OpenCensus, combinando forças para criar um padrão único e global de observabilidade.

Com o OpenTelemetry, os desenvolvedores não precisam mais escolher entre o OpenTracing e o OpenCensus. "O OpenTelemetry fornece um conjunto unificado de bibliotecas, APIs, agentes e serviços coletores para coleta e transferência de dados."


Como o OpenTelemetry funciona

O OpenTelemetry oferece um pipeline padronizado para coletar dados de telemetria e enviá-los para um back end de observabilidade à sua escolha. É projetado para ser agnóstico de fornecedor e extensível.

  • API: Interfaces específicas de linguagem para gerar dados de telemetria
  • SDKs: Implementar as APIs e gerenciar o processamento, o lote e a exportação de dados
  • Instrumentação:pode ser automática (sem alterações no código) ou manual (métricas/eventos personalizados)
  • Exportadores: Envie dados processados para um ou mais destinos usando protocolos padrão como o OTLP

As APIs do OpenTelemetry específicas para cada linguagem coordenam a coleta de dados de telemetria no seu sistema e instrumentam seu código. Os SDKs do OpenTelemetry implementam e oferecem suporte para as APIs por meio de bibliotecas que ajudam na coleta, no processamento e na exportação dos dados. O OpenTelemetry também fornece instrumentação automática de serviços e aceita instrumentação customizada. Você pode exportar seus dados de telemetria usando um exportador do fornecedor ou o protocolo OpenTelemetry (OTLP).


Principais componentes do OpenTelemetry

Os principais componentes do OpenTelemetry são:

ComponenteObjetivoExemplo de uso
CollectorRecebe, processa e exporta dados de telemetria em vários formatos; neutro em relação ao fornecedorAgregando logs, métricas e traces dos clusters do Kubernetes antes de enviar para a Elastic
SDKs de linguagemImplementa a API do OpenTelemetry para uma linguagem de programação específicaUsando o SDK do Python para instrumentar um aplicativo escrito em Python
Bibliotecas de instrumentaçãoEstruturas e bibliotecas populares de instrumentos automáticos para geração de telemetriaColetando métricas de solicitação HTTP do Spring Boot automaticamente
Instrumentação automáticaAdiciona capacidades de telemetria sem precisar alterar o códigoInjetando um agente Java para monitorar microsserviços baseados em JVM
ExportadoresEnvia os dados coletados para um ou mais back ends de observabilidadeExportando rastreamentos para o Jaeger e métricas para o Prometheus

 

Esses componentes permitem a coleta de dados flexível e padronizada, independentemente da escolha do backend.

Nossa documentação de configuração do coletor OpenTelemetry com a Elastic contém um passo a passo completo de instalação.


Benefícios do OpenTelemetry

Os benefícios do OpenTelemetry são a padronização dos dados e a flexibilidade à prova de futuro, resultando em melhor observabilidade, maior eficiência e custos reduzidos.

  1. Padronização
    1. Use um único método de coleta para vários backends: Elastic, Splunk, Datadog e muito mais.
    2. Reduza a complexidade do pipeline com um único framework extensível para logs, métricas e rastreamentos.
  2. Neutralidade de fornecedor
    1. Altere os back ends sem precisar reinstrumentar as aplicações.
    2. Adote facilmente novas ferramentas de observabilidade sem precisar fazer uma substituição completa.
    3. Mantenha a flexibilidade à medida que sua pilha de tecnologia evolui.
  3. Dados consistentes
    1. Mantenha o processamento e a análise mais fáceis com um esquema comum unificado.
    2. Execute análises, consultas, machine learning e muito mais em dados de diferentes fontes.

Com o OpenTelemetry, você obtém escalabilidade para crescimento, compatibilidade entre plataformas e fácil integração com suas ferramentas existentes de monitoramento e observabilidade.


Integração do OpenTelemetry e da Elastic

Como defensora de longa data dos padrões abertos, a Elastic está comprometida em promover a adoção do OpenTelemetry em todo o setor por meio de contribuição e colaboração ativas.

Elastic Observability integra perfeitamente os dados do OpenTelemetry e adiciona buscar, análises, machine learning e visualização poderosas em redimensionar. Em 2023, a Elastic contribuiu com o ECS para o OpenTelemetry para unificar os formatos de dados de telemetria.

Distribuições Elastic de OpenTelemetry (EDOT) fornecem aos SREs e desenvolvedores um ecossistema OTel estável. Com a abordagem OTel-first da Elastic preservando as convenções esquemáticas nativas do OpenTelemetry, não é necessário realizar conversões de esquema. EDOT também inclui correções além dos ciclos de lançamento do OTel e suporte de nível empresarial sem complementos próprios.

Explore as soluções OpenTelemetry-first da Elastic


Casos de uso de observabilidade de CI/CD com OpenTelemetry e Elastic

A Elastic trabalha com plataformas populares de CI/CD, como Jenkins, Ansible e Maven, para instrumentar pipelines com OpenTelemetry.

Isso possibilita:

  • Visibilidade de ponta a ponta do pipeline
  • Dashboards de monitoramento ao vivo
  • Alertas e detecção de anomalias automatizadas
  • Solução mais rápida de problemas de compilação/teste

Você pode encontrar instruções de configuração para usar o OpenTelemetry com o monitoramento de CI/CD da Elastic na nossa documentação oficial.


Perguntas frequentes sobre o OpenTelemetry

O OpenTelemetry é um padrão?

Sim. O OpenTelemetry é um projeto de código aberto e um padrão unificado para logs, rastreamentos e métricas.

Cite alguns exemplos de dados de telemetria.

Entre os exemplos de dados de telemetria, podemos citar logs, métricas e traces usados em observabilidade e monitoramento do sistema.

Qual é a diferença entre o OpenTelemetry e o Jaeger?

O OpenTelemetry ajuda a processar e exportar dados para uma variedade de backends comerciais e open source, mas não é um backend de observabilidade como o Jaeger. Enquanto o OpenTelemetry fornece um conjunto de APIs, SDKs e ferramentas para gerar e gerenciar dados de telemetria, o Jaeger é uma ferramenta open source de tracing distribuído. As equipes de TI usam o Jaeger para monitorar e solucionar problemas em aplicações com base na arquitetura de microsserviços. O Jaeger não aceita logs e métricas.

Qual é a diferença entre a API e o SDK do OpenTelemetry?

As APIs (interfaces de programação de aplicações) do OpenTelemetry coordenam a coleta de dados de telemetria no seu sistema e instrumentam seu código. Como as APIs são específicas para cada linguagem, elas devem corresponder à linguagem do seu código. Os SDKs (kits de desenvolvimento de software) do OpenTelemetry implementam e oferecem suporte para as APIs por meio de bibliotecas que ajudam na coleta, no processamento e na exportação dos dados para um backend de observabilidade.

Quem desenvolveu o OpenTelemetry e por quê?

O OpenTelemetry foi desenvolvido sob a nuvem Native Computing Foundation (CNCF) para unificar e padronizar a coleta e exportação de dados de telemetria. Ele uniu os projetos anteriores OpenTracing e OpenCensus para eliminar a fragmentação.

O que é o Protocolo OpenTelemetry (OTLP) e por que ele é importante?

OTLP é o protocolo padrão do OpenTelemetry, neutro em relação ao fornecedor, para enviar dados de telemetria entre componentes e back-ends. Ele garante que todos os dados — logs, métricas e rastreamentos — sejam transmitidos em um formato consistente, tornando a integração entre as ferramentas mais simples e mais confiável.

O que é o OpenTelemetry Collector?

O OpenTelemetry Collector é um serviço neutro em relação ao fornecedor que recebe dados de telemetria de várias fontes, processa-os (filtrando, agregando ou transformando) e os exporta para um ou mais back-ends. Ele aceita vários protocolos e formatos em uma única implantação.

"Como o OpenTelemetry se integra ao Elastic?"

Você pode trazer rastreamentos, logs e métricas nativos do OTel para a Elastic de qualquer ferramenta OTel de terceiros — ou dos seus próprios coletores OTel usando processadores e exportadores personalizados — para análise e visualização na Elastic. Elastic nativamente faz a ingestão de dados OTLP do OpenTelemetry e oferece capacidades avançadas, como busca escalável, visualização interativa, monitoramento em tempo real e detecção de anomalia baseada em machine learning. Não é necessário fazer conversões de esquema.


Recursos OpenTelemetry da Elastic