Monitoramento com Prometheus e Grafana: Stack Completa de Observabilidade
Por Que Prometheus Dominou o Monitoramento
Prometheus foi criado pelo SoundCloud em 2012 e doado à CNCF em 2016. Hoje é o sistema de monitoramento padrão para Kubernetes e ambientes cloud-native, com razão: modelo pull de scraping, linguagem de query poderosa (PromQL), alerting integrado e ecossistema massivo de exporters. Grafana complementa com visualização que vai além das métricas — integrando logs, traces e outras fontes.
📊 Prometheus + Grafana — 2025
Construindo a Stack de Monitoramento
Uma stack de monitoramento eficaz vai além de instalar as ferramentas. Requer métricas bem nomeadas, dashboards orientados a SLOs e alertas que disparam na frequência certa — nem muito, nem pouco.
Prometheus: Coleta e Storage
Scrape de /metrics endpoints a cada 15-60s. TSDB compacto e eficiente. Retention de 15 dias localmente. Para longo prazo, use Thanos ou Mimir para storage escalável.
Grafana: Dashboards Eficazes
Dashboards USE (Utilization, Saturation, Errors) para recursos de infra. Dashboards RED (Rate, Errors, Duration) para serviços. Evite criar dashboards sem propósito claro.
Alertmanager: Alertas Inteligentes
Agrupamento de alertas relacionados, inibição (suprimir alertas causados por outro), silêncios temporários e roteamento por severidade para PagerDuty, Slack ou e-mail.
Recording Rules
Pre-compute queries complexas e custosas em recording rules. Reduz carga de query em dashboards de tempo real e permite alerting mais eficiente em métricas agregadas.
PromQL: A Linguagem de Query
rate(), irate(), histogram_quantile() e funções de agregação permitem calcular latência P99, taxa de erro por serviço e saturação de recursos com precisão.
Exporters Essenciais
node_exporter (métricas de SO), kube-state-metrics (estado do K8s), blackbox_exporter (endpoints externos) e exporters específicos de banco (postgres_exporter) cobrem a maioria dos casos.
⚠️ Erros Comuns em Monitoring Stack
Alertas que disparam constantemente são ignorados. Toda regra de alerta deve responder: “Isso requer ação humana imediata?” Se não, é métrica para dashboard, não alerta.
Labels com alta cardinality (userId, requestId) criam milhões de time series, consumindo RAM do Prometheus até o crash. Use exemplars para correlação de alta cardinality.
Prometheus com 15 dias de retention dificulta análise de tendências e capacity planning. Configure Thanos ou Mimir para armazenamento de longo prazo de forma econômica.
Grafana com 200 dashboards desatualizados e sem dono é mais confuso que útil. Implante dashboard lifecycle: revisar, deprecar e remover dashboards que ninguém usa.
Um bom alerta não é aquele que nunca dispara — é aquele que, quando dispara, sempre requer ação imediata e específica de quem o recebe.
— iSecPlus, 2026
Implementando sua Stack de Monitoramento
Use o kube-prometheus-stack Helm chart para instalar Prometheus Operator, Alertmanager e Grafana com dashboards prontos em minutos. Configure ServiceMonitors para seus serviços. Defina SLOs para os 3 serviços mais críticos e crie alertas baseados em error budget burn rate. Adicione Loki para correlação com logs. Uma stack funcional pode estar rodando em 2 horas — a maturidade vem com iterações nos alertas e dashboards ao longo do tempo.
