O que é o OpenTelemetry?

O OpenTelemetry (OTel) é uma estrutura de Observabilidade e um kit de ferramentas que é uma linguagem compartilhada, um modelo de dados e uma unificação de comportamentos de propagação subjacentes. O OTel também foi projetado para gerenciar dados de telemetria, como rastreamentos, métricas e logs, e é de código aberto, permitindo maior flexibilidade.

Obtenha a demonstração
Fatos importantes sobre o OpenTelemetry
Qual é a história do OpenTelemetry? O que é observabilidade e por que ela é importante? O que são métricas no OpenTelemetry? O que é um exportador no OpenTelemetry? O que é um coletor no OpenTelemetry? Quais são os principais componentes do OpenTelemetry? O que o OpenTelemetry não é ServiceNow para uma abordagem melhor ao OTel
O OpenTelemetry (OTel) é uma estrutura de Observabilidade e um kit de ferramentas que é uma linguagem compartilhada, um modelo de dados e uma unificação de comportamentos de propagação subjacentes. O OTel também foi projetado para gerenciar dados de telemetria, como rastreamentos, métricas e logs, e é de código aberto, permitindo maior flexibilidade.

 

Expandir tudo Fechar tudo Qual é a história do OpenTelemetry?

O OpenTelemetry é o resultado de uma fusão entre dois projetos anteriores, o OpenTracing e o 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 a um back-end de observabilidade. No entanto, nenhum dos projetos conseguiu resolver o problema por conta própria e, portanto, os dois projetos se fundiram para formar o OpenTelemetry para que pudessem combinar seus pontos fortes e realmente oferecer um único padrão.

Fundamentalmente, o OpenTelemetry é independente de fornecedor e ferramenta, o que significa que ele pode ser usado com uma ampla variedade de back-ends de observabilidade, incluindo ferramentas de código aberto, como o Jaeger e o Prometheus, bem como ofertas comerciais. O OTel é um projeto da CNCF (Cloud Native Computing Foundation), criado para funcionar como uma solução robusta, portátil e fácil de usar em vários idiomas. Fornecendo um único conjunto de APIs, bibliotecas, agentes e serviços de coletor para capturar rastreamentos e métricas distribuídos a partir da sua aplicação. O OpenTelemetry torna possível a verdadeira observabilidade.

Conexão de DevOps, Observabilidade e AIOps Leia este white paper para saber como a conexão de DevOps, Observabilidade e AIOps pode melhorar a entrega de aplicações e explore as soluções da ServiceNow que podem ajudar. Veja o white paper
O que é observabilidade e por que ela é importante?

"Observabilidade" é um termo que ganhou atenção significativa no mundo da engenharia de software e da administração de sistemas, quase ao ponto de perder parte do seu significado. Hoje, até mesmo muitos daqueles que trabalham em TI usam o termo livremente para indicar qualquer tipo de visibilidade do sistema. Mas o que é exatamente observabilidade e como ela difere do monitoramento tradicional?

Observabilidade não é o mesmo que monitoramento

Monitoramento é o processo de observar e verificar ativamente o status do sistema, geralmente usando limites e alertas predefinidos. Embora essa abordagem possa chamar sua atenção para os sistemas afetados quando algo dá errado, o monitoramento muitas vezes não fornece informações sobre por que o problema está ocorrendo ou como resolvê-lo da melhor forma.

Observabilidade, por outro lado, é uma abordagem mais abrangente. Refere-se à capacidade de entender o que está acontecendo dentro de um sistema, analisando suas saídas externas. A observabilidade permite que você faça qualquer pergunta sobre o que ocorreu a qualquer momento, sem ter predefinido o que você queria saber com antecedência. Basicamente, o monitoramento pode dizer quando existe um problema, mas a observabilidade ajuda você a entender por que esse problema ocorreu.

Rastreamentos, métricas e logs

Há três pilares principais que são essenciais para a observabilidade:

  • Rastreamentos
    Um rastreamento representa a jornada de uma solicitação por meio de um sistema e pode fornecer uma imagem detalhada das interações de serviço. Os rastreamentos do OpenTelemetry são organizados em spans que contêm atributos e eventos, descrevendo e contextualizando o trabalho que está sendo feito em vários processos e serviços.
  • Métricas
    Métricas são representações numéricas de dados medidos em intervalos de tempo. Elas permitem o monitoramento contínuo do desempenho e do comportamento do sistema. No OpenTelemetry, a API Metrics pode ser usada para registrar, definir e adicionar métricas do sistema, oferecendo ferramentas para filtragem e análise agregada posteriormente.
  • Logs
    Os logs são registros baseados em texto gerados por sistemas e aplicações. Eles fornecem uma conta cronológica de eventos e podem ser vitais para depuração e compreensão do comportamento do sistema.

Embora esses três elementos tenham sido considerados há muito tempo os fatores mais essenciais na observabilidade, a crescente escala e complexidade dos sistemas distribuídos modernos forçou esse modelo tradicional a evoluir. Os profissionais começaram a reconhecer que os três pilares não estão isolados, mas fundamentalmente interconectados e devem ser usados em coordenação uns com os outros.

O OpenTelemetry desempenha um papel crucial na habilitação da observabilidade em sistemas distribuídos baseados em microsserviços. Sua ênfase na portabilidade, disponibilidade de implementações e SDKs (Software Development Kits, kits de desenvolvimento de software) na maioria das linguagens e, especialmente, em seus modelos de exportadores e coletores, a torna uma ferramenta fundamental para coletar e distribuir dados apropriados para o sistema.

Com o OpenTelemetry, as equipes podem coletar com eficiência os principais dados de rastreamento e métricas necessários para analisar o comportamento do sistema. Esse alinhamento com práticas de observabilidade permite uma compreensão mais profunda do desempenho do sistema, melhorando a capacidade de diagnosticar e resolver problemas.

O que é rastreamento no OpenTelemetry?

Assim como os rastreamentos são um dos três pilares da observabilidade, o rastreamento é uma prática crucial no desenvolvimento de software, normalmente usada para traçar perfis e analisar o código da aplicação por meio de ferramentas de depuração especializadas. No contexto do OpenTelemetry, o rastreamento assume um significado mais detalhado, referindo-se mais frequentemente ao rastreamento distribuído, um conceito essencial nas arquiteturas complexas de hoje.

Rastreamento distribuído

O rastreamento distribuído representa a aplicação de técnicas tradicionais de rastreamento a aplicações modernas e orientadas por microsserviços. Ao contrário das aplicações monolíticas em que o diagnóstico de uma falha pode envolver o acompanhamento de um único rastreamento de pilha, os sistemas distribuídos são simplesmente muito complexos para essa abordagem. Quando uma aplicação consiste em potencialmente milhares de serviços executados em vários hosts, os rastreamentos individuais se tornam insuficientes. O rastreamento distribuído resolve esse problema ao definir o perfil das solicitações à medida que elas se movem em diferentes limites de serviço, gerando dados de alta qualidade para análise. Esse método oferece recursos como:

  • Detecção de anomalia 
  • Modelagem de carga de trabalho 
  • Diagnóstico de problemas em estado estável

Rastreamentos e spans

No OpenTelemetry, rastreamento é um conjunto de spans vinculados, que são operações nomeadas e programadas representando uma unidade de trabalho em uma solicitação. Um span pode ter um pai ou pode ser um span raiz, que descreve a latência de ponta a ponta de todo o rastreamento. Os spans filhos representam suboperações dentro do rastreamento.

  • Span raiz
    O ponto principal ou inicial do rastreamento, representando toda a latência da solicitação. 
  • Span filho
    Suboperações específicas dentro do rastreamento.

Os spans encapsulam informações essenciais, incluindo o nome da operação, os carimbos de data e hora de início e de fim, eventos e atributos que ocorreram durante o span. Eles também contêm links para outros spans e o status da operação.

Atributos e eventos

Dada a complexidade dos dados de rastreamento do sistema distribuído, ter acesso ao contexto e a outros detalhes relevantes pode fazer uma grande diferença positiva na análise de dados. No OpenTelemetry, essas tags são conhecidas como atributos e eventos:

  • Atributos
    Pares de valor-chave (conhecidos no OpenTracing como "tags") que podem ser adicionados a um span para ajudar na análise de dados de rastreamento.
  • Eventos
    Cadeias de caracteres com registro de data e hora com um conjunto opcional de atributos que fornecem mais descrição, permitindo uma análise mais detalhada.

Rastreadores e propagadores

Os spans no OpenTelemetry são gerados pelo Rastreador, um objeto que rastreia o span ativo atualmente e permite a criação de novos spans. Os objetos propagadores oferecem suporte à transferência do contexto entre os limites do processo, um aspecto vital do rastreamento em sistemas distribuídos. O Rastreador despacha os spans concluídos para o exportador do SDK da OTel, responsável por enviar os spans para um sistema de back-end para análise posterior.

Embora o rastreamento forneça informações detalhadas sobre solicitações e operações individuais, ele também se relaciona ao contexto mais amplo de observabilidade no OpenTelemetry, incluindo métricas. Ao conectar dados de rastreamento com métricas relevantes, as organizações podem obter uma compreensão abrangente do comportamento e do desempenho do sistema.

O que são métricas no OpenTelemetry?

No contexto do OpenTelemetry, a API Metrics foi projetada para processar e resumir continuamente medições brutas. Isso proporciona às organizações maior visibilidade das métricas operacionais vitais, incluindo utilização de memória de processo, taxas de erro e muito mais. As métricas podem ser enviadas para vários instrumentos para agregação e gravação. A API Metrics do OpenTelemetry classifica os instrumentos de métrica de acordo com seu significado semântico em vez do tipo final de valor que eles exportam.

Instrumentos de métrica no OpenTelemetry

A API Metrics oferece seis instrumentos de métrica distintos, cada um deles atendendo a uma função específica. Esses instrumentos são criados e definidos por meio de chamadas para uma API Meter, o ponto de entrada do usuário para o SDK. Os instrumentos de métrica são síncronos ou assíncronos.

Instrumentos síncronos

Os instrumentos síncronos são chamados em uma solicitação e possuem um contexto distribuído associado. Os instrumentos síncronos incluem:

  • Counter
    O instrumento Counter aceita valores positivos com a função Add(). Isso é ideal para contar dados, como bytes recebidos, solicitações concluídas e medir a incidência de erros, e é particularmente adequado para contar medições.
  • UpDownCounter
    Uma extensão da funcionalidade Counter, o UpDownCounter processa incrementos positivos e negativos por meio da função Add(). Isso é útil para monitorar quantidades, como solicitações ativas, memória em uso e tamanho da fila.
  • ValueRecorder
    O instrumento ValueRecorder captura valores para eventos discretos usando a função Record(). Isso é usado para capturar latência, tamanho da solicitação e comprimento da fila, enfatizando uma distribuição de valores.

Instrumentos assíncronos

Diferentemente dos instrumentos síncronos, os instrumentos assíncronos não têm um contexto associado. Esses instrumentos são relatados por um retorno de chamada e chamados apenas uma vez por intervalo de coleta. Entre os instrumentos síncronos estão:

  • SumObserver
    O instrumento SumObserver utiliza a função Observe() para somas monotônicas assíncronas e é mais adequado para dados como perdas de cache e CPU do sistema. 
  • UpDownSumObserver
    O UpDownSumObserver é um contador assíncrono e não monotônico que aceita somas positivas e negativas com a função Observe(). Este instrumento é usado para medições que capturam o aumento e a queda de somas, como o tamanho do heap do processo.
  • ValueObserver
    Por fim, o ValueObserver capacita as organizações com controle refinado sobre medições não aditivas usando a função Observe(). Isso é ideal quando o foco das medições é uma distribuição.

A composição dos eventos de métrica

Os eventos de métrica capturados por qualquer instrumento consistem em um registro de data e hora, definição do instrumento (nome, tipo, descrição, unidade de medida), conjunto de rótulos (chaves e valores), valor (número inteiro ou de ponto flutuante), recursos associados ao SDK e contexto distribuído (somente para eventos síncronos). A variedade de instrumentos de medição disponíveis oferece flexibilidade na captura de diferentes tipos de dados, auxiliando na análise e no monitoramento de vários atributos do sistema.

Independentemente de monitorar taxas de erro, latência ou utilização de recursos, os instrumentos de métrica do OpenTelemetry oferecem diversas opções para que os desenvolvedores obtenham informações críticas sobre suas aplicações.

O que é um exportador no OpenTelemetry?

O exportador é responsável por colocar em lote e transportar dados de telemetria para um sistema de back-end para análise e alertas. O modelo exportador do OpenTelemetry oferece suporte à integração de instrumentação em três níveis diferentes:

  • Integração de nível de serviço
    Isso envolve declarar uma dependência do pacote relevante do OpenTelemetry em seu código e implantá-lo de acordo.
  • Dependências de biblioteca
    Semelhante à integração no nível de serviço, mas específica às bibliotecas, que normalmente apenas declaram uma dependência da API OpenTelemetry.
  • Dependências de plataforma
    Esses são componentes de software independentes que dão suporte ao seu serviço, como Envoy e Istio. Eles implantam a cópia do OpenTelemetry e emitem um contexto de rastreamento útil para o seu serviço.

A interface do exportador, implementada pelos SDKs do OpenTelemetry, usa um modelo de plug-in que converte dados de telemetria no formato necessário para um sistema de back-end específico antes de transmitir os dados. Esse modelo também oferece suporte à composição e encadeamento de exportadores, facilitando a funcionalidade compartilhada entre diferentes protocolos.

Uma vantagem significativa da abordagem do OpenTelemetry é a facilidade de alternar ou adicionar componentes de exportação. Isso o diferencia do OpenTracing, em que a mudança do sistema requer a substituição de todo o componente do rastreador.

O que é um coletor no OpenTelemetry?

Embora o modelo de exportador ofereça grande conveniência, certas restrições organizacionais ou técnicas podem impedir a fácil reimplantação de um serviço para adicionar um novo exportador. O coletor do OpenTelemetry foi projetado para agir como um "link" para dados de telemetria de vários processos, exportando-os para vários sistemas de back-end, como Observabilidade de nuvem da ServiceNow, Jaeger ou Prometheus. O coletor pode ser implantado como um agente junto com um serviço ou como uma aplicação remota:

  • Agente
    Implantado com seu serviço, executado como um processo separado ou sidecar. 
  • Coletor remoto
    Implantado separadamente em um contêiner ou uma máquina virtual, recebendo dados de telemetria de cada agente e exportando-os para sistemas de back-end.
Quais são os principais componentes do OpenTelemetry?

O OpenTelemetry consiste nos seguintes componentes principais:

  • Uma especificação para todos os componentes
  • Um protocolo padrão que define a forma dos dados de telemetria
  • Convenções semânticas que definem um esquema de nomenclatura padrão para tipos comuns de dados de telemetria
  • APIs que definem como gerar dados de telemetria
  • Um ecossistema de biblioteca que implementa a instrumentação para bibliotecas e estruturas comuns
  • Componentes de instrumentação automática que geram dados de telemetria sem exigir mudanças de código
  • SDKs de linguagem que implementam a especificação, APIs e exportação de dados de telemetria
  • O coletor do OpenTelemetry, um proxy que recebe, processa e exporta dados de telemetria
  • Várias outras ferramentas, como o Operador do OpenTelemetry para Kubernetes

Compatibilidade

Compatível com uma ampla variedade de integrações de ecossistema de código aberto, o OpenTelemetry também é suportado por um grande número de fornecedores, muitos dos quais oferecem suporte comercial para o OpenTelemetry e contribuem diretamente para o projeto.

Extensibilidade

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

  • Adição de um receptor ao coletor do OpenTelemetry para dar suporte a dados de telemetria a partir de uma fonte personalizada
  • Carregamento de instrumentação personalizada em um SDK
  • Criação de uma distribuição de um SDK ou Coletor adaptado a um caso de uso específico
  • Criação de um novo exportador para um back-end personalizado que ainda não oferece suporte ao protocolo OpenTelemetry (OTLP)
  • Criação de um propagador personalizado para um formato de propagação de contexto não padrão

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

Por que o OpenTelemetry é importante?

Com o aumento da computação em nuvem, das arquiteturas de microsserviços e dos requisitos de negócios cada vez mais complexos, a necessidade de observabilidade nunca foi tão grande.

Para tornar um sistema observável, ele deve ser instrumentado. Ou seja, o código deve emitir rastreamentos, métricas e logs. Os dados instrumentados devem então ser enviados para um back-end de Observabilidade.

O OpenTelemetry faz duas coisas importantes:

  • Permite que você tenha os dados que gera em vez de ficar preso a um formato ou ferramenta de dados proprietários.
  • Permite que você aprenda um único conjunto de APIs e convenções

Essas duas coisas combinadas permitem que equipes e organizações tenham a flexibilidade necessária no mundo da computação moderna de hoje.

O que o OpenTelemetry não é

O OpenTelemetry não é um back-end de Observabilidade, como Jaeger, Prometheus ou fornecedores comerciais. O OpenTelemetry se concentra na geração, coleta, gestão e exportação de dados de telemetria. O armazenamento e a visualização desses dados são intencionalmente deixados para outras ferramentas.

Preços da Observabilidade de nuvem Escolha um pacote para encontrar uma edição da Observabilidade de nuvem da ServiceNow que atenda às suas necessidades.
ServiceNow para uma abordagem melhor ao OTel

A necessidade de visibilidade de ponta a ponta é mais crucial do que nunca. O OpenTelemetry oferece uma abordagem padronizada para a coleta de dados de telemetria em diversas aplicações e linguagens de programação. Ao oferecer informações abrangentes sobre o comportamento do sistema, o OTel permite que as organizações otimizem o desempenho, solucionem problemas e ofereçam uma experiência perfeita para o usuário. Mas quando se trata de observabilidade, sempre há espaço para melhorias.

A Observabilidade de nuvem da ServiceNow, anteriormente conhecida como Lightstep, oferece suporte ao OpenTelemetry como a forma de obter dados de telemetria (rastreamentos, logs e métricas) à medida que as solicitações passam por serviços e outras infraestruturas. A Observabilidade de nuvem coleta dados do OpenTelemetry por meio do OTLP (OpenTelemetry Protocol) nativo. Os dados do OTLP podem, então, ser exportados para a Observabilidade de nuvem via HTTP ou gRPC.

Para melhorar ainda mais a observabilidade e a governança em ambientes nativos da nuvem, a ServiceNow também lançou o SGC (Conector do Service Graph para OpenTelemetry). Aproveitando os dados do OpenTelemetry e o back-end de Observabilidade de nuvem da ServiceNow, esta solução revoluciona como as empresas ganham visibilidade e informações sobre suas aplicações nativas da nuvem e sua infraestrutura Kubernetes. O SGC descobre e mapeia automaticamente as dependências de serviço, criando uma topologia de serviço precisa e atualizada. Ao permitir que as organizações avaliem o impacto das mudanças, simplifiquem a gestão de incidentes e promovam a colaboração multifuncional, esta solução melhora a eficiência, reduz os riscos e ajuda a garantir a melhor observabilidade possível em ambientes de TI complexos.

Experimente os recursos transformadores do Conector do Service Graph para OpenTelemetry. Entre em contato com a ServiceNow hoje mesmo!

Veja a demonstração dos nossos especialistas sobre como a Observabilidade de nuvem da ServiceNow pode ajudar sua organização a acelerar a transição para aplicativos nativos da nuvem. Explore a Observabilidade de nuvem Fale conosco
Recursos Artigos O que é ServiceNow? O que é observabilidade? Relatórios dos analistas Gartner nomeia a ServiceNow como visionária em APM e observabilidade Folhas de dados Cloud Insights Deliver agile multi-cloud governance with ServiceNow® ITOM Optimization (Ofereça governança ágil em várias nuvens com a Optimização do ITOM da ServiceNow®) Orquestração eBooks Remasterização da gestão de mudanças com a ITIL 4 Gorilla Guide® Condensed Edition: IT Asset Management (Edição condensada do Gorilla Guide®: gestão de ativos de TI) Acelere a transformação de software em toda a empresa White papers Dimensione a transformação da nuvem Gestão de nuvem Adote a nuvem com a ServiceNow e o Azure