O que é o OpenTelemetry?

Definição de OpenTelemetry

OpenTelemetry (OTel) é um framework de observabilidade open source com o qual as equipes de desenvolvimento podem gerar, processar e transmitir dados de telemetria em um formato unificado. Foi desenvolvido pela Cloud Native Computing Foundation (CNCF) para fornecer protocolos e ferramentas padronizados com o objetivo de coletar e rotear métricas, logs e traces para plataformas de monitoramento.

O OpenTelemetry fornece SDKs, APIs e ferramentas com independência de fornecedor para que seus dados possam ser enviados para qualquer backend de observabilidade 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 de suas tecnologias existentes.

Elastic OpenTelemetry microservices

Então, o que são os dados de telemetria?

Os dados de telemetria consistem em logs, métricas e traces coletados de um sistema distribuído. Conhecidos como os “pilares da observabilidade”, essas três categorias de dados ajudam os desenvolvedores, os profissionais de DevOps e as equipes de TI a entender o comportamento e o desempenho de seus sistemas.

Logs. Um log é um registro de texto de um evento distinto que aconteceu em um sistema em um determinado ponto no tempo. Entradas de log são produzidas toda vez que um bloco de código é executado. Geralmente incluem um carimbo de data e hora que mostra quando o evento ocorreu, junto com uma carga útil de contexto. Os dados de log vêm em vários formatos, incluindo texto simples, estruturado e não estruturado. Os logs são particularmente úteis para solução de problemas, depuração e verificação de código.

Métricas. As métricas são valores numéricos mensurados em intervalos de tempo, geralmente conhecidos como dados de série temporal. Incluem atributos como carimbo de data e hora, o nome de um evento e o valor de um evento. Nos sistemas modernos, as métricas nos permitem monitorar, analisar e responder a problemas e facilitar a geração de alertas. Elas podem fornecer informações sobre sua infraestrutura ou aplicação como a taxa de erros do sistema, a utilização da CPU ou a taxa de solicitação de um serviço.

Traces. Os traces representam o caminho de uma solicitação por um sistema distribuído. Os traces no OpenTelemetry são definidos por seus spans. Um grupo de spans constitui um trace. O tracing ajuda as equipes a entender a jornada de ponta a ponta e o comportamento das solicitações por meio de vários serviços e componentes. Com o tracing distribuído, você pode rastrear um caminho de execução completo e identificar o código que está causando problemas. Os traces fornecem visibilidade da integridade geral de uma aplicação, mas visibilidade limitada de sua infraestrutura subjacente. Para obter uma visão completa do seu ambiente, você precisa dos outros dois pilares da observabilidade: logs e métricas.

Uma breve história do OpenTelemetry

OpenTracing e OpenCensus eram projetos de tracing distribuído que se sobrepunham, desenvolvidos independentemente para resolver o problema da falta de um formato de dados padronizado. O OpenTelemetry foi criado para fundir as bases de código dos projetos OpenTracing e OpenCensus, combinando os pontos fortes de cada um em um único projeto hospedado pela Cloud Native Computing Foundation.

O OpenTracing fornece APIs independentes de fornecedor para enviar dados para um backend. O OpenCensus era uma coleção de bibliotecas específicas para cada linguagem que os desenvolvedores usavam para instrumentar seu código e enviar dados para backends. Ambos eram open source, o que significa que o código-fonte do software é desenvolvido de forma colaborativa e está disponível para qualquer pessoa usar, modificar e distribuir.

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 funciona o OpenTelemetry?

O OpenTelemetry fornece um framework comum para coletar dados de telemetria e exportá-los para um backend de observabilidade de sua escolha. Ele usa um conjunto de APIs, SDKs e ferramentas padronizados e independentes de fornecedor para ingestão, transformação e transporte dos dados.

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).

OpenTelemetry architecture

Principais componentes do OpenTelemetry

Os principais componentes do OpenTelemetry são:

Collector

O OpenTelemetry Collector é um proxy independente de fornecedor que recebe, processa e exporta dados de telemetria. Ele oferece suporte para o recebimento de dados de telemetria em vários formatos, bem como para o processamento e a filtragem dos dados de telemetria antes de serem exportados.

SDKs de linguagem

Os SDKs de linguagem do OpenTelemetry permitem que você use a API do OpenTelemetry para gerar dados de telemetria com uma linguagem e exportar os dados para um backend.

Bibliotecas de instrumentação

O OpenTelemetry oferece suporte para uma ampla variedade de componentes que geram dados de telemetria relevantes de bibliotecas e frameworks populares para linguagens compatíveis.

Instrumentação automática

Uma implementação do OpenTelemetry específica para cada linguagem pode fornecer uma maneira de instrumentar sua aplicação sem precisar alterar o código-fonte.

Exportadores

Disassociando a instrumentação da sua configuração de backend, os exportadores possibilitam que os backends sejam alterados facilmente, sem alterar sua instrumentação. Eles também permitem que você carregue os dados de telemetria para mais de um backend.

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.

Padronização na coleta de dados

O OpenTelemetry fornece uma solução para as equipes de DevOps que buscam uma maneira consistente de coletar e exportar dados de telemetria para backends como Splunk, New Relic, Dynatrace e Datadog, sem precisar alterar a instrumentação. Com padrões abertos e coleta de dados padronizada, o OpenTelemetry proporciona maior visibilidade e observabilidade simplificada. Com uma observabilidade mais fácil de configurar, as equipes podem entender melhor a integridade do sistema, identificar problemas de desempenho e reduzir o tempo necessário para corrigir as causas raiz antes que ocorram interrupções no serviço. As organizações que usam o OpenTelemetry não precisam perder tempo desenvolvendo soluções internas ou pesquisando ferramentas individuais para múltiplas aplicações. Ao reduzir o ruído, os custos e a necessidade de alterações na configuração, o OpenTelemetry permite que as organizações se concentrem em utilizar seus dados, em vez de se preocuparem com a forma como são coletados. Além disso, os insights podem ser entregues às equipes usando as ferramentas ou os formatos que fazem mais sentido, resultando em melhor colaboração.

Chega de ficar preso a um único fornecedor

O OpenTelemetry libera as equipes para escolher qualquer backend que desejarem sem ficarem reféns de um fornecedor específico, preparando seus investimentos para o futuro. Ele pode acomodar alterações nos sistemas, backends e processos, para que você nunca fique preso a uma única plataforma, solução ou contrato, permitindo que as organizações se expandam e se adaptem à medida que suas necessidades de tecnologia evoluem. Com independência e flexibilidade, você pode basear suas decisões de negócios no que é melhor para seus resultados e clientes — não nas limitações da sua tecnologia.

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.

OpenTelemetry com a Elastic

O OpenTelemetry fornece uma maneira padrão de instrumentar as aplicações com um formato de telemetria unificado, mas não fornece componentes analíticos ou de backend. O Elastic Observability integra os dados do OpenTelemetry perfeitamente em uma plataforma Elasticsearch aberta e extensível.

A Elastic oferece suporte nativo para o protocolo OpenTelemetry, permitindo extrair logs, métricas e traces de várias linguagens. Isso torna muito mais fácil aproveitar as poderosas funcionalidades de analítica e visualização da Elastic em escala.

Em abril de 2023, a Elastic contribuiu com seu Elastic Common Schema (ECS) para o OpenTelemetry com o objetivo de longo prazo de convergir convenções semânticas com o ECS para um esquema de dados de telemetria comum. A Elastic planeja padronizar-se com o OpenTelemetry para sua arquitetura de dados e aumentará seu investimento e colaboração com o projeto OpenTelemetry no futuro.

OpenTelemetry and the Elastic Stack

A Elastic também contribui fortemente para o projeto OpenTelemetry. Para ajudar os administradores a monitorar e solucionar problemas em sua plataforma de CI/CD e ajudar os desenvolvedores a aumentar a velocidade e a confiabilidade de seus pipelines de CI/CD, o Elastic Observability fornece visibilidade dos processos de CI/CD. Para fornecer dashboards de monitoramento, alerta e análise de causa raiz em pipelines, a Elastic trabalha com as comunidades das plataformas de CI/CD mais populares, incluindo Jenkins, Ansible e Maven, para instrumentar ferramentas com o OpenTelemetry.

O Elastic Observability é uma solução de nível empresarial que permite às organizações enviar os dados coletados pela instrumentação do OpenTelemetry diretamente para implantações da Elastic. Ele oferece visibilidade completa das suas aplicações de nuvem híbrida e a capacidade de armazenar, analisar e visualizar tudo. Você também pode usar as poderosas funcionalidades de machine learning da Elastic para reduzir o tempo de análise e recuperação.

Explore soluções do OpenTelemetry

Perguntas frequentes sobre o OpenTelemetry

O OpenTelemetry é um padrão?

Sim. O OpenTelemetry é um projeto open source e um padrão unificado para logs, traces 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 ajudar a 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 oferece suporte para 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.