Monitoramento com Prometheus: review técnico para times de TI

20/10/2026  ·  Devskin

Monitoramento com Prometheus: review técnico para times de TI

O monitoramento com Prometheus virou padrão de fato em ambientes containerizados, e não é por acaso: o projeto resolve bem um problema específico, que é coletar e consultar métricas numéricas de séries temporais com baixo atrito operacional. Neste review técnico, olho para a ferramenta como alguém que opera infraestrutura e SaaS: o que ela entrega, onde ela dói e quando vale a pena adotá-la.

Como o monitoramento com Prometheus funciona por dentro

A arquitetura central é simples. O servidor Prometheus faz scrape via HTTP em endpoints /metrics expostos pelas aplicações ou por exporters, e grava as amostras em um TSDB local, com armazenamento em disco otimizado para séries temporais. Esse modelo pull é a principal diferença em relação a soluções baseadas em push.

No monitoramento com Prometheus, cada série é identificada por um nome de métrica e um conjunto de labels. Isso dá poder de consulta, mas também define o principal risco operacional, que veremos adiante. Os tipos de métrica mais usados são:

  • Counter: valor que só cresce (requisições, erros); você consulta com rate().
  • Gauge: valor que sobe e desce (memória, itens em fila).
  • Histogram: distribuição em buckets, útil para latência e para calcular quantis com histogram_quantile().
  • Summary: quantis calculados no cliente, sem agregação confiável entre instâncias.

Os componentes ao redor completam o ecossistema: Alertmanager para roteamento, agrupamento e silenciamento de alertas; service discovery (Kubernetes, Consul, DNS, arquivos) para descobrir alvos dinamicamente; e o Grafana como camada de visualização, já que a UI nativa serve mais para depuração de queries.

Pontos fortes na prática

  • PromQL expressivo: permite agregar por label, calcular taxas, razões de erro e comparar janelas de tempo em uma única linguagem.
  • Service discovery nativo: em Kubernetes, pods e serviços entram e saem do scrape sem edição manual.
  • Detecção de alvo fora do ar: a métrica sintética up é gerada a cada scrape, o que dá um health check quase gratuito.
  • Ecossistema de exporters: node_exporter, blackbox_exporter e exporters de bancos de dados cobrem boa parte da infraestrutura comum.
  • Operação simples: um binário, configuração em YAML e sem dependência de banco externo para começar.

Limites e trade-offs que ninguém deve ignorar

O monitoramento com Prometheus não é uma plataforma de observabilidade completa. Ele cobre métricas; logs e traces exigem outras peças, como Loki e Tempo ou alternativas equivalentes. Tratar o Prometheus como solução única é um erro comum.

Cardinalidade de labels

Cada combinação única de labels cria uma nova série. Colocar user_id, request_id ou URLs com parâmetros em labels pode explodir o consumo de memória e degradar o servidor. É o problema mais frequente em produção e se resolve com disciplina de instrumentação, não com mais hardware.

Retenção e escala

O TSDB local é pensado para armazenamento de curto e médio prazo; a retenção padrão é de 15 dias. Para retenção longa, alta disponibilidade e visão global entre clusters, você precisa de remote write e de uma camada adicional, como Thanos, Mimir ou VictoriaMetrics. Isso adiciona complexidade e custo operacional, e vale decidir esse desenho antes de o ambiente crescer.

Modelo pull e redes restritas

O pull exige que o servidor alcance os alvos. Em redes segmentadas, jobs efêmeros ou ambientes atrás de NAT, o Pushgateway ou um agente com remote write pode ser necessário, com ressalvas: o Pushgateway não deve virar proxy genérico de métricas.

Exemplo de configuração mínima

Um ponto de partida funcional, com scrape de uma API e uma regra de alerta para alvo indisponível:

global:
  scrape_interval: 30s
  evaluation_interval: 30s

rule_files:
  - alerts.yml

scrape_configs:
  - job_name: api
    metrics_path: /metrics
    static_configs:
      - targets: ['api:8080']

# alerts.yml
groups:
  - name: disponibilidade
    rules:
      - alert: AlvoIndisponivel
        expr: up{job='api'} == 0
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: 'API sem resposta ao scrape'

O campo for evita alertas por oscilações curtas, e as labels de severidade alimentam o roteamento no Alertmanager. Se você roda a stack com contêineres, vale conferir as práticas de healthcheck, volumes e rollback no nosso tutorial de Docker Compose em produção para times de TI.

Quando adotar e quando buscar alternativa

Adote monitoramento com Prometheus quando:

  • você opera Kubernetes ou serviços containerizados com alvos dinâmicos;
  • precisa de alertas baseados em taxa de erro, latência e saturação;
  • tem time capaz de manter o servidor, as regras e a disciplina de labels.

Considere alternativas ou serviços gerenciados quando:

  • o time é pequeno e não quer operar armazenamento e alta disponibilidade;
  • a retenção longa e a consulta global entre ambientes são requisito central;
  • o foco principal é APM, logs e traces integrados em uma única interface.

Há também o fator financeiro. Plataformas gerenciadas em dólar podem pesar no orçamento conforme o volume de séries cresce. Para quem quer rever esse eixo, o artigo Custo de Cloud Estrangeiro: o que eu mudaria hoje para cortar até 70% mostra como atacar visibilidade e custo juntos.

Boas práticas para um ambiente sustentável

  • Defina um orçamento de cardinalidade e revise métricas com mais séries periodicamente.
  • Baseie alertas em sintomas (erro e latência percebidos pelo usuário), não só em causas como CPU.
  • Use recording rules para pré-calcular consultas pesadas usadas em dashboards.
  • Versione configuração e regras em Git e valide com promtool no pipeline.
  • Planeje backup e retenção antes do primeiro incidente, não depois.

Conclusão

O monitoramento com Prometheus entrega excelente custo-benefício técnico para métricas, com PromQL poderoso e integração madura com Kubernetes. Em contrapartida, exige governança de labels, plano de retenção e complementos para logs e traces. Se o seu time aceita essa responsabilidade, é uma base sólida; se não, avalie uma camada gerenciada e compare o custo total antes de decidir.

Contato

Envie uma mensagem

Entre em contato