O que é OpenTelemetry?

Dois colegas de trabalho em uma sala de servidores olhando para um notebook

O que é OpenTelemetry?

OpenTelemetry, ou OTel, é um framework de observabilidade em código aberto que inclui uma coleção de kits de desenvolvimento de software (SDKs), APIs independentes do fornecedor e outras ferramentas para instrumentação de aplicação, sistema e dispositivo.

O OTel simplifica a forma como os dados de telemetria são coletados, independentemente da linguagem de programação, da infraestrutura ou do tempo de execução, e possibilita que os desenvolvedores gerem, coletem e exportem dados de telemetria padronizados para qualquer back-end de observabilidade. Esse framework padronizado fortalece e amplia os recursos de observabilidade, além de oferecer maior flexibilidade às equipes de TI e DevOps.  

O OTel é implementado entre aplicações, sistemas e dispositivos e soluções de back-end: o armazenamento e a visualização são intencionalmente deixados para outras ferramentas, dando às organizações a liberdade de escolher as ferramentas que melhor se adaptam a elas.

Observabilidade é a capacidade de obter insights sobre o funcionamento interno de um sistema analisando suas saídas externas. Em operações de TI (ITOps) e computação em nuvem, dados de telemetria (como logs, métricas e rastreamentos) são usados para avaliar o desempenho e a integridade do sistema. Profissionais de DevOps contam com instrumentação — adicionando código a aplicações e sistemas para produzir e capturar dados de telemetria — para criar sistemas observáveis.

Essa instrumentação costuma ser uma tarefa complexa quando se trabalha em ambientes modernos, com ambientes de nuvem híbrida e multinuvem, aplicações baseadas em microsserviços, contêineres de Kubernetes e outros recursos de ambientes de computação atuais. Esses sistemas distribuídos e as várias linguagens de programação e tempos de execução que incorporam, apresentam uma matriz complicada para instrumentar, coletar e exportar para armazenamento de back-end, visualização e análise.

Para obter uma compreensão abrangente do desempenho do serviço de rede e da aplicação, os engenheiros devem configurar a instrumentação personalizada para aplicativos e sistemas em toda a infraestrutura. O OpenTelemetry ajuda a resolver esse problema.

O OTel oferece um método padrão para coletar e transmitir dados de observabilidade, o que ajuda a simplificar o monitoramento em sistemas distribuídos. Ele usa bibliotecas e APIs unificadas e independentes de fornecedores para coletar e enviar dados de telemetria para plataformas de back-end. Ao adotar o OpenTelemetry, as equipes podem coletar e processar uniformemente telemetria em sistemas complexos, independentemente de quais aplicações gerenciam ou de quais ferramentas de observabilidade usam.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Por que o OpenTelemetry é importante para a observabilidade?

O código de instrumentação utilizado varia muito. E como nenhum provedor comercial oferecia uma ferramenta capaz de coletar dados de todos os aplicativos e serviços em rede, era difícil para as empresas coletar dados em diferentes idiomas e formatos ou alterar os back-ends.

Se, por exemplo, uma equipe de desenvolvimento quisesse trocar as ferramentas de back-end, teria que reinstrumentar completamente seu código e configurar novos agentes para enviar dados de telemetria aos novos servidores. Além disso, essa abordagem fragmentada criou silos e confusão, dificultando a solução eficaz de problemas de desempenho.

O OpenTelemetry representou um avanço significativo nas ferramentas de observabilidade porque padronizou a forma como os dados de telemetria são coletados, analisados e transmitidos para plataformas de back-end. Ele oferece uma solução de código aberto baseada em padrões orientados pela comunidade - para coletar dados sobre o comportamento e a segurança do sistema, ajudando as equipes a simplificar o monitoramento e a observabilidade em ecossistemas distribuídos. Dessa forma o OTel oferece às empresas uma abordagem aberta e consistente para coletar dados críticos de aplicações e serviços de rede.

A evolução do OpenTelemetry

O OpenTelemetry foi criado combinando os recursos de rastreamento distribuído do OpenTracing e do OpenCensus em uma única ferramenta. O OpenTracing foi um projeto de código aberto desenvolvido pela Cloud Native Computing Foundation (CNCF) para disponibilizar aos engenheiros uma API independente de fornecedor para adicionar instrumentação de rastreamento distribuído aos aplicativos. Ele estabeleceu um conjunto de convenções semânticas para ajudar a garantir a consistência nos dados de telemetria.

Entretanto, diferentemente do OpenTelemetry, o OpenTracing não era em si uma implementação de rastreamento. Em vez disso, disponibilizou interfaces que os sistemas de rastreamento poderiam implementar para maximizar a compatibilidade entre plataformas. O OpenTracing é um projeto extinto (que agora incentiva os usuários a migrarem para o OpenTelemetry), mas vários softwares e soluções de rastreamento ainda dependem de suas APIs.

OpenCensus é um conjunto de bibliotecas de instrumentação, desenvolvida pelo Google, para reunir métricas de aplicações e rastreamentos distribuídos, que podem exportar dados para diferentes back-ends em tempo real. Ele coleta dados com tags de propagação e metadados consistentes, um conceito que agora existe no OpenTelemetry como “recursos”.

Com o OpenCensus, as aplicações podem importar e exportar dados com base em seus requisitos específicos, garantindo flexibilidade na forma como as métricas e os rastreamentos são enviados aos back-ends de observabilidade. O OpenCensus não foi formalmente descontinuado como o OpenTracing; ainda recebe manutenção regular e atualizações de segurança. No entanto, o desenvolvimento ativo foi transferido em grande parte para a OpenTelemetry.

Ambos os projetos visavam lidar com o mesmo problema. Na época, as equipes de desenvolvimento não tinham uma maneira padrão de instrumentalizar código e transmitir dados de telemetria para ferramentas de observabilidade de back-end.

No entanto, nenhum projeto poderia resolver esse problema sozinho. Por isso, a CNCF patrocinou o projeto OpenTelemetry, combinando as melhores funcionalidades de cada solução. O OpenTelemetry reúne a padronização da API do OpenTracing e os recursos de coleta de dados do OpenCensus para oferecer uma plataforma única e unificada para enviar, coletar e transferir dados de telemetria para plataformas de observabilidade de back-end.

O que são dados de telemetria?

Parte fundamental da execução de redes e aplicação de alta disponibilidade é alcançar Full Stack Observability (ou visibilidade), o que exige o acesso a dados de telemetria. As soluções de observabilidade coletam, monitoram e analisam dados de telemetria para determinar a integridade do sistema e, em seguida, oferecem às equipes de TI insights praticáveis para reparos e otimizações.

Para entender melhor o OpenTelemetry, vamos nos aprofundar no que são dados de telemetria e como as organizações os utilizam. O OpenTelemetry oferece suporte a tipos de dados específicos, ou seja, as saídas coletadas de logs, métricas e rastros (frequentemente chamados “três pilares da observabilidade”).

Métrica

As métricas são avaliações numéricas do desempenho do sistema e do uso de recursos. Oferecem uma visão geral de alto nível da integridade da rede capturando os principais indicadores de desempenho (KPIs) como latência, perda de pacotes, utilização da largura de banda e uso da CPU do dispositivo.

As métricas são normalmente resumidas usando dashboards e outras visualizações. Geralmente oferecem às equipes as primeiras indicações de um problema de desempenho do sistema ou desempenho da aplicação.

Logs

Logs são registros detalhados de cada evento ou ação que ocorre dentro do ambiente. Apresentam informações detalhadas sobre o que ocorreu, quando ocorreu e em que ponto da rede ocorreu, proporcionando às equipes um contexto valioso para solução de problemas, depuração e análise forense.

Os logs revelam as causas subjacentes dos problemas, detalhando eventos do sistema como alterações nas configurações de dispositivos, falhas nas autenticações e quedas de conexões.

Rastreios

Os rastreios capturam o fluxo de dados em toda a rede, fornecendo insights sobre o caminho e o comportamento dos pacotes enquanto eles atravessam vários dispositivos e sistemas. Eles são essenciais para entender sistemas distribuídos e diagnosticar problemas de latência.

O rastreamento de dados possibilita que as equipes de TI vejam a jornada completa de uma transação, de ponta a ponta, ajudando a identificar atrasos e falhas que ocorrem em ambientes complexos de várias camadas.

Componentes do OpenTelemetry

O OpenTelemetry depende de vários componentes e processos para tornar a coleta de dados bem-sucedida, incluindo:

Interfaces de programação de aplicativos (APIs)

Uma API é um conjunto de regras ou protocolos que possibilita que aplicativos de software se comuniquem entre si para trocar dados, recursos e funções.

O OpenTelemetry disponibiliza APIs específicas de linguagem — para Java™, Ruby, JavaScript, Python e outras linguagens — que os desenvolvedores podem usar para instrumentar suas aplicações para coleta de dados de telemetria. As APIs do OpenTelemetry separam os aplicativos da infraestrutura de rede, dando às equipes a flexibilidade de usar qualquer endpoint que corresponda ao seu código de instrumentação.

Kits de desenvolvimento de software de linguagem (SDKs)

Os SDKs do OpenTelemetry possibilitam que os engenheiros configurem e customizem o comportamento da API. Os SDKs formam a ponte entre APIs e coletores e possibilitam conectar a instrumentação manual para bibliotecas comuns à instrumentação manual de aplicativos. 

A OTel oferece SDKs para uma variedade de linguagens de programação, para que os desenvolvedores possam usar APIs de OTel para gerar e exportar dados de telemetria específicos para a linguagem e o backend escolhidos. Os SDKs OTel também oferecem suporte à instrumentação personalizada para frameworks internos ainda não cobertos pela comunidade do OpenTelemetry.

Coletores

Um coletor é um agente que coleta dados de telemetria de aplicações instrumentadas com OpenTelemetry. Composto por receptores, processadores, agregados e exportadores, o coletor atua como um intermediário independente de fornecedor, recebendo dados de aplicações e encaminhando-os para plataformas de observabilidade ou outros destinos para análise.

O coletor do OpenTelemetry suporta pacotes contrib que possibilitam ingestão de dados em vários formatos, incluindo OpenTelemetry Protocol (OTLP), Prometheus e Jaeger, e exportá-los para vários back-ends, às vezes simultaneamente (para ter redundância). Os pacotes contrib são extensões de terceiros que disponibilizam instrumentação às equipes de desenvolvimento, samplers, propagadores e detectores de recursos em um formato de submódulo.

Os coletores também podem processar e filtrar dados de telemetria antes de exportá-los para priorizar a entrega dos dados mais vitais e acelerar os processos de solução de problemas e depuração.

Exportadores

Os exportadores fazem parte do coletor e são responsáveis por enviar dados de telemetria da aplicação para um ou mais back-ends de observabilidade especificados. Enquanto os coletores gerenciam o fluxo geral de dados, os exportadores priorizam a transmissão de dados para o seu destino.

Os exportadores de dados do OpenTelemetry desacoplam a instrumentação das configurações de back-end e convertem os dados no formato apropriado para cada plataforma de observabilidade (convertendo os rastros para o protocolo Zipkin, por exemplo). Essa dinâmica possibilita que o coletor envie os mesmos dados de telemetria para vários back-ends, facilitando a alteração dos destinos sem alterar a lógica de instrumentação do código.

Instrumentação automática

A instrumentação automática oferece bibliotecas e frameworks prontas que possibilitam que os aplicativos gerem automaticamente dados de telemetria com o mínimo ou no-code alterações de código. Esse processo simplifica a instrumentação para os desenvolvedores, reduzindo (e às vezes eliminando) as tarefas manuais de codificação.

No entanto, a autoinstrumentação pode oferecer menos controle sobre tipos específicos de coleta de dados em comparação com a instrumentação manual. A amplitude da instrumentação automática também pode variar de acordo com os tempos de execução da linguagem, os ambientes de computação e os níveis de suporte da comunidade para frameworks de observabilidade.

Como funciona o OpenTelemetry?

O OpenTelemetry funciona combinando APIs, SDKs, coletores e processos de instrumentação automática para extrair dados e enviá-los ao sistema de destino.

Primeiro, a equipe de DevOps instrumentaliza o código da aplicação com APIs OTel, especificando quais métricas, traços e logs coletar e como coletá-los. O coletor do SDK do OTel reúne os dados e os prepara para processamento e exportação e, em seguida, cria amostragens, filtra e correlaciona os dados com dependências e outras fontes de dados.

Quando os dados processados são formatados corretamente, o SDK os agrupa em lotes baseados em tempo (onde passam por mais filtragem, se necessário) e os envia para o sistema de back-end designado.

Benefícios do OpenTelemetry

O principal objetivo da OpenTelemetry é coletar e exportar dados de telemetria e aprimorar a observabilidade, disponibilizando às organizações uma ferramenta que facilita a neutralidade do fornecedor e a integração de plataformas e ferramentas. Ele ajuda as equipes de DevOps e os engenheiros de confiabilidade de sites (SREs) a gerenciar e depurar aplicações e sistemas, para poderem tomar decisões mais bem fundamentadas e permanecerem ágeis à medida que as necessidades dos negócios mudam.

Os benefícios do OTel são:

  • Implementa a coleta de dados consistente. O OpenTelemetry possibilita que as equipes coletem dados de telemetria de forma consistente em diferentes aplicativos, sistemas e casos de uso.
  • Evita o lock-in com fornecedor. O OTel é uma solução neutra em relação ao fornecedor que possibilita que os desenvolvedores troquem ferramentas e provedores de observabilidade de back-end sem fazer alterações significativas no código de instrumentação.
  • Simplifica a observabilidade. O OTel simplifica a observabilidade ao coletar dados de telemetria sem exigir que o pessoal de TI modifique o código-fonte ou os metadados. Também possibilita que os desenvolvedores mantenham visibilidade full stack, independentemente dos back-ends ou fornecedores de observabilidade que utilizam.
  • Ecossistemas de TI preparados para o futuro. Como o OpenTelemetry é apoiado por uma comunidade de código aberto e pelo CNCF, foi feito para evoluir acompanhando as mudanças das tecnologias de computação e as necessidades de observabilidade. Por exemplo, a OTel recentemente adicionou perfis contínuos ao seu grupo de sinais primários de telemetria.1
  • Rastrear o uso de recursos. O OpenTelemetry pode capturar solicitações de dados entre servidores para categorizar o uso de recursos por grupos, ajudando as equipes de TI a rastrear a utilização entre sistemas compartilhados.
  • Priorizar as solicitações de dados. O OpenTelemetry pode criar um pipeline de classificação de prioridade para solicitações de dados dentro da arquitetura, de modo que solicitações concorrentes atravessem a rede em ordem de criticidade de missão.
  • Expandir o acesso aos dados de monitoramento. Com o OTel, os desenvolvedores podem monitorar dados de telemetria e receber alertas em qualquer navegador ou dispositivo da web, facilitando o rastreamento do desempenho do software e da integridade geral do sistema em tempo real.
Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Soluções relacionadas
OpenTelemetry

Otimize as operações e o desempenho de suas aplicações nativas em nuvem usando a OpenTelemetry na IBM Instana Observability.

    Explore o OpenTelemetry
    Solução de observabilidade da IBM

    Maximize sua resiliência operacional e garanta a integridade das aplicações nativas em nuvem com a observabilidade impulsionada por IA.

      Explore as soluções de observabilidade da IBM
      IBM Consulting AIOps

      Eleve a automação e as operações de TI com a IA generativa, alinhando todos os aspectos da sua infraestrutura de TI com as prioridades do negócio.

      Explore a consultoria de AIOps do IBM Consulting
      Dê o próximo passo

      Libere o desempenho das aplicações nativas da nuvem com a observabilidade automatizada orientada por IA.

      Explore o IBM Instana Descubra a Instana