Você não pode melhorar o que não mede. Grafana e Prometheus formam o stack de monitoramento mais popular do mundo open-source — Prometheus coleta e armazena métricas, Grafana visualiza em dashboards interativos com alertas. De startups a empresas Fortune 500, essa combinação oferece visibilidade total sobre infraestrutura, aplicações e negócios sem licenças caras.
Prometheus: coleta e armazenamento de métricas
Prometheus funciona com modelo pull: ele faz scrape de endpoints HTTP que expõem métricas em formato texto simples. Sua aplicação expõe um endpoint /metrics com contadores, gauges, histogramas e summaries. Contadores (counter) só crescem — requests totais, erros acumulados. Gauges sobem e descem — uso de CPU, conexões ativas. Histogramas medem distribuições — latências de requests em buckets (< 0.1s, < 0.5s, < 1s).
Instrumentar uma aplicação é simples: bibliotecas client existem para Go, Python (prometheus_client), Java (Micrometer), Node.js (prom-client) e praticamente toda linguagem. Com 5-10 linhas de código, sua aplicação expõe métricas que o Prometheus coleta automaticamente a cada 15 segundos. Node Exporter coleta métricas do sistema operacional (CPU, memória, disco, rede), e exporters específicos existem para PostgreSQL, Redis, Nginx, Kubernetes e dezenas de sistemas.
PromQL: a linguagem de queries
PromQL é a linguagem que torna Prometheus poderoso. Queries simples como http_requests_total retornam séries temporais brutas. Funções como rate() calculam taxa de crescimento por segundo — rate(http_requests_total[5m]) mostra quantas requests por segundo nos últimos 5 minutos. Agregações como sum(rate(http_requests_total[5m])) by (status_code) agrupam por código de status, revelando imediatamente se os 500 estão crescendo.
Queries avançadas detectam anomalias: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) calcula o P99 de latência — 99% das requests são mais rápidas que esse valor. Se o P99 passar de 2 segundos, algo está degradando. Predict_linear() extrapola tendências: predict_linear(disk_free_bytes[1h], 3600*24) prevê quanto disco livre terá em 24 horas — se chegar a zero, alerte antes do desastre.
Grafana: visualização e dashboards
Grafana transforma queries PromQL em painéis visuais: gráficos de séries temporais, gauges, tabelas, heatmaps e stat panels. Dashboards organizam panels em linhas e seções, com variáveis de template que permitem filtrar por ambiente (prod, staging), serviço, ou instância. Um dashboard de aplicação web típico mostra: taxa de requests, latência P50/P95/P99, taxa de erros, uso de CPU/memória, e métricas de negócio (usuários ativos, transações por minuto).
A comunidade Grafana mantém milhares de dashboards prontos no grafana.com/dashboards — importe um dashboard para Node Exporter, Kubernetes, PostgreSQL ou Nginx com um click e customize para sua necessidade. Dashboards como código são possíveis com Grafonnet (Jsonnet) ou Terraform provider, permitindo versionamento e deploy automatizado de dashboards junto com a infraestrutura.
Alertas inteligentes
Alerting rules no Prometheus definem condições de disparo: se a taxa de erros 5xx ultrapassar 1% por mais de 5 minutos, se o disco ficar abaixo de 10%, se a latência P99 ultrapassar 3 segundos. Alertmanager recebe esses alertas e roteia para canais apropriados: Slack para avisos, PagerDuty para críticos, email para summaries. Agrupamento, silenciamento e inibição evitam alert fatigue — o inimigo número um do monitoramento eficaz.
Grafana Alerting (unificado na versão 9+) também permite criar alertas diretamente dos painéis do dashboard, com preview visual do threshold. A combinação ideal é: Prometheus alerting para condições de infraestrutura crítica (disk full, service down), e Grafana alerting para métricas de negócio e tendências que gestores precisam acompanhar. Ambos alimentam os mesmos canais de notificação para visibilidade unificada.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.