O que é o OpenTelemetry?
O OpenTelemetry é um framework e um conjunto de ferramentas de Observabilidade projetados para criar e gerenciar dados de telemetria como rastros, métricas e logs. Um aspecto crucial do OpenTelemetry é ser agnóstico em relação a fornecedores e ferramentas, o que o possibilita ser utilizado com uma grande variedade de backends de observabilidade, incluindo ferramentas de código aberto como Jaeger e Prometheus, além de soluções comerciais.
O OpenTelemetry não é um backend de observabilidade como Jaeger, Prometheus ou outras soluções comerciais. O OpenTelemetry é focado na geração, coleta, gerenciamento e exportação de telemetria. Um dos principais objetivos do OpenTelemetry é permitir que você possa instrumentar suas aplicações ou sistemas de forma fácil, independentemente da linguagem, infraestrutura ou ambiente de execução. Crucialmente, o armazenamento e a visualização da telemetria são intencionalmente deixados para outras ferramentas.
O que é observabilidade?
Observabilidade é a capacidade de entender o estado interno de um sistema ao examinar os dados que ele emite. No contexto de software, isso significa ser capaz de entender o estado interno do sistema analisando seus dados de telemetria, que incluem rastros, métricas e logs.
Para tornar um sistema observável, ele deve ser instrumentado. Ou seja, o código deve emitir rastros, métricas ou logs. Os dados instrumentados devem então ser enviados para um backend de observabilidade.
Por que OpenTelemetry?
Com a ascensão da computação em nuvem, arquiteturas de microsserviços e requisitos de negócios cada vez mais complexos, a necessidade de observabilidade de software e infraestrutura é cada vez maior.
O OpenTelemetry atende à necessidade de observabilidade seguindo dois princípios-chave:
- Você tem controle total sobre os dados que gera. Não há dependência de fornecedor (vendor lock-in).
- Você só precisa aprender um único conjunto de APIs e convenções.
Ambos os princípios combinados dão a flexibilidade que equipes e organizações precisam no mundo da computação moderna atual.
Se você quiser saber mais, dê uma olhada na missão, visão e valores do OpenTelemetry.
Os principais componentes do OpenTelemetry
O OpenTelemetry consiste dos seguintes componentes:
- Uma especificação para todos os componentes
- Um protocolo padrão que define o formato dos dados de telemetria
- Convenções semânticas que estabelecem um padrão de nomenclatura para tipos comuns de dados de telemetria
- APIs que definem como gerar dados de telemetria
- SDKs para linguagens de programação que implementam a especificação, APIs e exportação de dados de telemetria
- Um ecossistema de bibliotecas que implementa instrumentação para bibliotecas e frameworks comuns
- Componentes para instrumentação automática que geram dados de telemetria sem exigir alterações no código
- O OpenTelemetry Collector, um proxy intermediário que recebe, processa e exporta dados de telemetria
- Várias outras ferramentas, como o OpenTelemetry Operator para Kubernetes, OpenTelemetry Helm Charts, e recursos da comunidade para FaaS
O OpenTelemetry é utilizado por diversas bibliotecas, serviços e aplicativos que o integram para fornecer observabilidade por padrão.
O OpenTelemetry é suportado por inúmeros fornecedores, muitos dos quais oferecem suporte comercial para o OpenTelemetry e contribuem diretamente para o projeto.
Extensibilidade
O OpenTelemetry é projetado para ser extensível. Alguns exemplos de como ele pode ser estendido incluem:
- Adicionar um receiver ao OpenTelemetry Collector para suportar dados de telemetria de uma fonte personalizada
- Carregar bibliotecas de instrumentação personalizadas em um SDK
- Criar uma distribuição de um SDK ou do Collector adaptada a um caso de uso específico
- Criar um novo exporter para um backend personalizado que ainda não suporta o protocolo do OpenTelemetry (OTLP)
- Criar um propagador personalizado para formatos de propagação de contexto não padronizados
Embora a maioria dos usuários possa não precisar estender o OpenTelemetry, o projeto é projetado para tornar isso possível em quase todos os níveis.
História
O OpenTelemetry é um projeto da Cloud Native Computing Foundation (CNCF) que é resultado da fusão entre dois projetos anteriores, OpenTracing e 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 para um backend de Observabilidade. Como nenhum dos projetos conseguiu resolver o problema por completo de forma independente, eles se fundiram para formar o OpenTelemetry e combinar seus esforços para oferecer uma solução única.
Se você está atualmente utilizando OpenTracing ou OpenCensus, pode aprender como migrar para o OpenTelemetry no guia de migração.
Próximos passos
- Começando — mergulhe de cabeça!
- Aprenda sobre os conceitos do OpenTelemetry.
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!