Conceitos OpenTelemetry

ezziomoreira

Ezzio Moreira

Posted on September 15, 2023

Conceitos OpenTelemetry

Em 2019, houve a fusão entre dois projetos, OpenCensus e OpenTracing que resultou no OpenTelemetry. Os dois projetos queriam resolver um problema comum, definir um padrão para instrumentação, coleta e envio de dados de telemetria para um backend de observabilidade.

OpenTracing é composto por uma especificação de APIs, permitindo enviar dados de telemetria para um vendor de observabilidade.
OpenCensus incluía um conjunto de bibliotecas suportada por diversas linguagens para instrumentar código e enviar dados para o backend de observabilidade.

A combinação dos pontos fortes de cada projeto permite que os usuários resolvam os desafios da observabilidade utilizando um padrão único de bibliotecas, APIs, coleta, processamento e envio de dados de telemetria agnóstico de vendors de observabilidade.

O que é OpenTelemetry?

É um framework de observabilidade que sustenta um conjunto de APIs, SDKs, agentes e outros elementos que permite gerar, processar e transmitir dados de telemetria de forma unificada e agnóstico ao provedor de observabilidade.

Conceitos do OpenTelemetry

Antes de começar a usar o OpenTelemetry, é importante entender quais são os principais componentes e terminologias.

Isso nos ajuda a compreender como funciona o OpenTelemetry.

Existe outros componentes e terminologias que não foram citadas aqui, consulte a documentação oficial do projeto.

O projeto é composto por:

Signals

Métrica, log, trace e bagagem são exemplos de sinais ou tipos de telemetria que formam a estrutura em torno do OpenTelemetry. Cada sinal representa um conjunto lógico e autônomo.

Esses sinais são importantes para a observabilidade, troubleshooting e monitoramento. Eles auxiliam os engenheiros a entender o que está acontecendo em um sistema, rastrear problemas e tomar decisões mais assertivas.

Instrumentation

Para tornar um sistema observável, é necessário que ele seja instrumentado. É adicionado um código ao sistema para coletar dados de telemetria.

Algumas linguagens suportam a autoinstrumentação, que provê uma forma de instrumentar seu aplicativo sem alterar o código-fonte do sistema.

Existem outros mecanismos para instrumentar um sistema, instrumentação manual e utilizando bibliotecas fornecidas pelo projeto OpenTelemtry.

Semantic Conventions

A convenção semântica é composto por vários documentos que especificam nomenclaturas comuns para os diferentes tipos de dados.

Por exemplo, se o servidor A possui uma métrica http.server.duration e o servidor B uma métrica http.server.request_duration, como podemos comparar a duração total entre os dois serviços se as métricas têm nomes diferentes?

A imagem mostra algumas especificações de atributos para Spans de cliente/servidor HTTP.

Image description

Sampling

Através do rastreamento distribuído, podemos observar a latência das requisições que passa entre os serviços.

No entanto, se a maioria das requisições tem um status bem-sucedido com latência num período previsível, precisamos de todos esses dados?
Nem sempre é necessário um grande volume de dados para encontrar os insights corretos. Você só precisa da amostragem correta desses dados.

A ideia por trás da amostragem é controlar a quantidade de dados que você envia para o backend de observabilidade, muitas vezes esses provedores de observabilidade cobram por dados ingestados.

Os principais objetivos da amostragem são: gerenciamento de custos, foco no rastreamento relevantes e filtrar ruídos.

Conclusão

Exploramos um pouco da história do OpenTelemetry e podemos entender a origem do projeto. Compreender os conceitos do OpenTelemetry nos auxiliará a superar os desafios para desenvolver observabilidade de alta qualidade.

Os sinais são compostos por trace, métricas, logs e baggage, os quais geram telemetria. Conhecer as convenções semânticas e a propagação de contexto ajuda na correlação dos eventos entre os sinais, através da amostragem podemos gerenciar os dados que serão enviados para o backend de observabilidade mantendo o foco nos dados relevantes para o sistema.

Referências:

💖 💪 🙅 🚩
ezziomoreira
Ezzio Moreira

Posted on September 15, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Conceitos OpenTelemetry
observability Conceitos OpenTelemetry

September 15, 2023