DEV Community

Marcius Bezerra
Marcius Bezerra

Posted on

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

Crie counters e histograms em uma Minimal API, consulte métricas no Prometheus e configure dashboards do Grafana com serviços executados via Docker Compose. Aprenda a implementar observabilidade em uma aplicação ASP.NET Core utilizando Prometheus, Grafana e Docker Compose.

Nesta etapa prática, são criadas métricas personalizadas com o pacote prometheus-net.AspNetCore. A aplicação disponibiliza os dados no endpoint /metrics, enquanto o Prometheus realiza o scrape periódico e fornece as séries temporais para consultas e visualizações no Grafana.

O tutorial demonstra como:

  • Criar uma métrica do tipo Counter com CreateCounter;
  • Incrementar valores utilizando Inc;
  • Medir a duração de operações com Histogram e CreateHistogram;
  • Controlar o timer com NewTimer e o descarte automático do using;
  • Criar um endpoint em uma Minimal API para disparar as métricas;
  • Executar a aplicação com dotnet watch;
  • Inspecionar manualmente o endpoint /metrics;
  • Interpretar séries de histogramas com os sufixos _sum, _count e buckets;
  • Consultar métricas pela interface do Prometheus;
  • Verificar o estado do scrape em Status - Targets;
  • Entender o intervalo entre coleta e atualização das métricas;
  • Configurar o Prometheus como Data Source do Grafana;
  • Utilizar o nome do serviço do Docker Compose em vez de localhost;
  • Criar painéis e executar consultas PromQL;
  • Escolher visualizações adequadas para counters e métricas de duração;
  • Salvar, editar, duplicar e organizar dashboards;
  • Importar dashboards prontos do Grafana Labs por ID.

O conteúdo é especialmente útil para observabilidade de APIs, microsserviços, aplicações distribuídas e sistemas ASP.NET Core que precisam acompanhar volume de requisições, duração de operações e evolução das métricas ao longo do tempo.

Índice de capítulos

00:00:00 Introdução e revisão da stack de observabilidade
00:03:34 Métricas personalizadas no Prometheus
00:05:13 Criando uma métrica Prometheus Counter no Program.cs
00:07:00 Criando um Histogram no Prometheus para duração de requisições
00:08:21 Endpoint /update, incremento e timer
00:10:38 Executando com dotnet watch e acessando /metrics
00:12:02 Analisando _sum, _count e buckets do Histogram no Prometheus
00:14:16 Consultando métricas na interface do Prometheus
00:16:57 Visualização Graph e intervalo de atualização (Prometheus)
00:18:05 Verificando o scrape em Status - Targets (Prometheus)
00:18:44 Configurando o Prometheus como Data Source no Grafana
00:20:03 Conectando Grafana e Prometheus pela rede Docker
00:22:06 Criando um dashboard no Grafana
00:23:10 Selecionando métricas e executando queries
00:24:08 Consultas PromQL e cálculo de rate no Grafana
00:25:29 Ajustando visualizações e salvando o dashboard no Grafana
00:26:07 Criando uma segunda visualização no Grafana
00:27:28 Editando, duplicando e nomeando painéis no Grafana
00:28:16 Procurando dashboards Grafana para ASP.NET Core
00:29:34 Importando dashboards do Grafana Labs por ID
00:30:19 Avaliando a compatibilidade dos dashboards

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)