📄️ Conceitos de Observabilidade
A observabilidade representa uma mudança fundamental na forma como monitoramos sistemas, permitindo compreendê-los de fora para dentro. Diferentemente do monitoramento tradicional, a observabilidade possibilita fazer perguntas sobre o sistema sem necessariamente conhecer seu funcionamento interno detalhado. Esta capacidade é especialmente crucial para identificar e resolver não apenas problemas conhecidos, mas também "problemas desconhecidos" - aqueles que não poderíamos antecipar.
📄️ Como Acontece o Trace
Vale muito a pena entender como o OTel consegue construir o trace.
📄️ Instrumentação VS Coleta
A instrumentação é o processo de gerar os dados de telemetria no seu código. É como "instalar sensores" na sua aplicação que vão criar os traces, métricas e logs.
📄️ Opentelemtry Esclarecimentos
Quero fazer um paralelo aproveitando um pouco mais do OTel e esclarecer algumas dúvidas.
📄️ Grafana Cloud vs Opentelemetry
Se você esta usando o Grafana Cloud que já tem tudo o que é necessário para observabilidade vale a pena mensionar algumas coisas que tem a ver com o OTel e o Prometheus.
📄️ Grafana Agent e OpenTelemetry Operator
É interessante somente ler sobre isso depois que dominar o OpenTelemetry.
📄️ Projeto
A proposta é conhecer como funciona por dentro de uma aplicação para entender a instrumentação. Se você é devops e tá pensando, isso é problema dos devs, eu não tiro a sua razão não. Por que não fizeram em uma linguagem que dá para automatizar? :D.
📄️ Adicionando OTel ao Projeto Base
Uma vez com o projeto base na mão podemos adicionar a instrumentação deste código. Aqui temos um passo a passo como a sdk do OTel com NodeJS
📄️ Adicionando as Primeiras Métricas
Agora vamos instrumentar as métricas até até o presente momento fizemos só a parte de trace.
📄️ Tipos de Métricas
Uma métrica no Otel será de um dos quatro tipos abaixo.
📄️ Construindo Métricas Personalizadas
Vamos então construir uma métrica personalizada. O código estará diponível na branch personal_metrics.
📄️ Relação de Logs e Traces
Quando você instrumenta uma aplicação com OpenTelemetry, o contexto do trace (trace context) é automaticamente propagado através da aplicação. Isso significa que você tem uma "linha do tempo" das operações que acontecem.
📄️ Criando Spans Manualmente
Até agora os spans (intervalo) foram criados automaticamente quando usamos o OTel SKD, mas saiba que é possível criar spans para em qualque parte do código aumentando a granularidade e nos permitindo:
📄️ Span Attributes
São um conjunto chave valor, no Jaeger são mostrados em tags, que nos informa o que aconteceu nesse span. Eles fornecem contexto adicional e informações detalhadas sobre uma operação específica.
📄️ Configurando a Instrumentação
Existem várias coisas que valem a pena mensionar sobre a configuração da SDK.
📄️ Resources
São dados encontrados em um span que não é um atributo.
📄️ Sampling
Um dos problemas do OpenTelemetry é controlar o custo. Apesar de ser uma ferramenta open source em algum lugar você irá precisar de tráfego, processamento e armazenamento para os dados coletados. Seja em uma infra própria, na cloud, um custo estará associado.
📄️ Context Propagation
Se analizarmos qual é o fluxo de um span até chegar no seu destino temos isso.
📄️ Collector vs SDK
O collector é um componente do backend.
📄️ Collector Processor
Documentação
📄️ Overview
opentelemetry