DEV Community

Cover image for 📝 Mapeando Logs do .NET com Grafana
Danilo O. Pinheiro, dopme.io
Danilo O. Pinheiro, dopme.io

Posted on

📝 Mapeando Logs do .NET com Grafana

A observabilidade tornou-se um dos pilares fundamentais em aplicações modernas. Garantir que logs, métricas e traces estejam disponíveis e correlacionados é essencial para diagnosticar problemas, melhorar a performance e tomar decisões estratégicas.

Neste artigo, vamos explorar como mapear logs do .NET utilizando o ILogger e integrá-los ao Grafana, uma das ferramentas mais populares do mercado para visualização e monitoramento.


📌 Por que integrar .NET com Grafana?

O Grafana é uma ferramenta flexível e extensível que pode consumir dados de múltiplas fontes, como:

  • Loki (para logs distribuídos)
  • Prometheus (para métricas)
  • ElasticSearch
  • Tempo (para traces)

No contexto de .NET moderno, o uso do ILogger integrado com Serilog ou Elastic/Loki sinks permite enviar logs diretamente para backends que o Grafana consegue consumir e visualizar.


⚙️ Configurando o projeto .NET com ILogger

O ILogger já está embutido no .NET e pode ser configurado com provedores de logging. Um exemplo simples para direcionar logs ao console e ao Loki:

using Microsoft.Extensions.Logging; using Serilog; using Serilog.Sinks.Grafana.Loki; var builder = WebApplication.CreateBuilder(args); // Configuração do Serilog com Loki Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Console() .WriteTo.GrafanaLoki("http://localhost:3100") // Loki endpoint .CreateLogger(); builder.Host.UseSerilog(); var app = builder.Build(); app.MapGet("/", (ILogger<Program> logger) => { logger.LogInformation("🌍 API chamada com sucesso em {time}", DateTime.UtcNow); return "Hello Observability!"; }); app.Run(); 
Enter fullscreen mode Exit fullscreen mode

Nesse exemplo:

  • Logs são enviados tanto para o console quanto para o Grafana Loki.
  • Grafana será responsável por visualizar os logs enviados.

🛠️ 3. Configurando o Loki + Grafana

Passo 1 – Subir Loki + Grafana com Docker Compose

version: "3.9" services: loki: image: grafana/loki:2.9.0 ports: - "3100:3100" grafana: image: grafana/grafana:10.0.0 ports: - "3000:3000" depends_on: - loki 
Enter fullscreen mode Exit fullscreen mode

Passo 2 – Configurar o Loki como Data Source no Grafana

  1. Acesse http://localhost:3000
  2. Vá em Connections > Data Sources
  3. Adicione Loki com a URL: http://loki:3100

📊 Visualizando Logs no Grafana

Após a configuração:

  • Vá em Explore no Grafana
  • Selecione Loki como fonte
  • Filtre logs por labels definidos no Serilog (app, env, level, etc.)

Exemplo de query no Grafana Loki:

{app="my-dotnet-api", level="Information"} 
Enter fullscreen mode Exit fullscreen mode

Isso retorna todos os logs da aplicação no nível Information.


🏗️ Boas práticas para Logging com Grafana e .NET

✔️ Estruture logs em JSON para fácil indexação.
✔️ Use Correlation IDs para rastrear requisições entre serviços.
✔️ Defina níveis adequados (Information, Warning, Error, Critical).
✔️ Evite logging excessivo (custo de armazenamento).
✔️ Combine logs + métricas + traces (observabilidade 360º).


✅ Conclusão

Integrar .NET com Grafana via Loki fornece uma solução poderosa para centralizar logs e permitir diagnósticos rápidos em arquiteturas modernas.
Com poucos passos, você consegue estruturar logs, visualizar no Grafana e evoluir sua observabilidade.


🤝 Conecte-se Comigo

Se você trabalha com .NET moderno e quer dominar observabilidade, arquitetura, C#, DevOps ou interoperabilidade, vamos conversar:

💼 LinkedIn
✍️ Medium
📬 contato@dopme.io


¹⁰ Mas, quando vier o que é perfeito, então o que o é em parte será aniquilado.
1 Coríntios 13:10

Top comments (0)