8-Bit Chronicles

Games • Tech • DevLog

DevLog #02 – Instrumentando Observabilidade: Traces, Logs e Métricas

DevLog

DevLog #02 – Instrumentando Observabilidade: Traces, Logs e Métricas

📅 Data: 13 de Janeiro de 2026

✍️ Autor: Luís Gabriel Marchió Batista


Os Três Pilares da Observabilidade

Observabilidade é mais do que monitoramento. Está baseada em três pilares fundamentais:

  1. Traces Distribuídos - Rastreiam uma requisição através de todos os serviços
  2. Logs Estruturados - Fornecem contexto detalhado dos eventos
  3. Métricas - Agregam dados quantitativos sobre o sistema

1. Traces Distribuídos com Jaeger

Implementaremos traces distribuídos usando Jaeger integrado ao .NET via OpenTelemetry.


// Configuração do TracerProvider
var tracerProvider = new TracerProviderBuilder()
    .AddAspNetCoreInstrumentation()
    .AddHttpClientInstrumentation()
    .AddOtlpExporter(opt => {
        opt.Endpoint = new Uri("http://jaeger:4317");
    })
    .Build();

2. Logs Estruturados com Serilog

Utilizaremos Serilog para estruturar os logs com contexto importante.


Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Information()
    .WriteTo.Console(new RenderedCompactJsonFormatter())
    .WriteTo.ApplicationInsights(new TelemetryClient(), TelemetryConverter.Events)
    .CreateLogger();

3. Métricas com Prometheus

Coletaremos métricas usando OpenTelemetry Metrics API e exportando para Prometheus.


var meter = new Meter("OrderPipeline.Metrics");
var orderCounter = meter.CreateCounter<long>(
    "orders.created",
    unit: "{order}",
    description: "Número de pedidos criados"
);

Beneficiando-se da Observabilidade

Com esses três pilares implementados, conseguimos:

  • 🔍 Investigar laços de desempenho em produção
  • 📄 Entender o contexto completo de cada erro
  • 📈 Monitorar tendências de desempenho ao longo do tempo
  • 🚨 Alertar sobre anomalias rapidamente

Próximos Passos

No próximo post, exploraremos padrões de resiliência como Retry e Circuit Breaker.