DEV Community

Marcius Bezerra
Marcius Bezerra

Posted on

Observabilidade com .NET, Prometheus e Grafana: Métricas, Docker e /metrics

Observabilidade com .NET, Prometheus e Grafana: Métricas, Docker e /metrics

Configure uma Minimal API ASP.NET Core com Prometheus, Docker Compose e Grafana para expor e coletar métricas HTTP.

Descrição

Neste tutorial prático, você aprenderá os fundamentos de observabilidade com .NET, utilizando Prometheus para coleta de métricas e Grafana para visualização por meio de dashboards.

O projeto utiliza uma Minimal API em ASP.NET Core, configurada para expor o endpoint /metrics com a biblioteca prometheus-net.AspNetCore. A partir desse endpoint, o Prometheus realiza o processo de scraping (pull model) em intervalos configuráveis, armazenando métricas em séries temporais.

Também é criado um ambiente local reproduzível com Docker Compose, contendo os serviços do Prometheus e do Grafana. Você verá como configurar o arquivo prometheus.yml, integrar containers ao host usando host.docker.internal, publicar portas e validar o acesso à interface do Grafana.

Conteúdos abordados

  • Conceitos iniciais de observabilidade, métricas, logs e traces
  • Prometheus e métricas baseadas em séries temporais
  • PromQL e o modelo de coleta pull/scrape
  • Grafana como camada de visualização de dados
  • Ecossistema Prometheus, Grafana, Loki e Tempo
  • Criação de Minimal API com .NET 10 e ASP.NET Core
  • Endpoint HTTP /metrics
  • Instalação do pacote prometheus-net.AspNetCore
  • Configuração de scrape_interval e scrape_configs
  • Comunicação entre Docker e aplicação executada no host
  • Criação do docker-compose.yml
  • Execução e inspeção de containers com Docker
  • Configuração inicial e acesso ao Grafana
  • Coleta automática de métricas HTTP, CPU, memória e requisições

Este é o primeiro passo para instrumentar aplicações .NET e preparar uma stack de observabilidade. Na continuação, serão abordadas métricas customizadas, consultas no Prometheus e a criação de dashboards no Grafana.

Índice de capítulos

00:00:00 O que é Prometheus e métricas de séries temporais
00:03:40 Site do Prometheus, CNCF e PromQL
00:05:31 O que é Grafana e fontes de dados suportadas
00:07:48 Ecossistema de observabilidade: Prometheus, Loki, Tempo e Grafana
00:08:57 Como o Prometheus funciona: pull model, scrape e endpoint /metrics
00:10:48 Expondo métricas em aplicações web .NET
00:12:14 Preparação do ambiente e verificação do SDK .NET
00:15:07 Criando uma Minimal API ASP.NET Core com dotnet new web
00:19:00 Abrindo e conhecendo a estrutura do projeto no VS Code
00:24:57 Instalando o pacote prometheus-net.AspNetCore
00:29:32 Configurando o arquivo prometheus.yml
00:32:54 Acesso ao host a partir do Docker com host.docker.internal
00:34:29 Criando o docker-compose.yml para Prometheus e Grafana
00:37:58 Verificando containers e possíveis conflitos de portas
00:40:11 Subindo os serviços com Docker Compose
00:42:07 Acessando e validando o Grafana
00:43:25 Configurando UseMetricServer na Minimal API
00:45:17 Validando o endpoint /metrics
00:46:17 Habilitando métricas HTTP com UseHttpMetrics

links:

Prometheus

https://prometheus.io/

CNCF

https://www.cncf.io/

CNCF / Prometheus

https://www.cncf.io/projects/prometheus/

Grafana

https://grafana.com/

.Net Install Script

https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script

Top comments (0)