1

Seu /health responde 200 e o cliente ainda vê erro no checkout

Semana passada caí num caso clássico: o endpoint de health check de uma API respondendo 200 OK redondo enquanto os clientes viam erro na hora de pagar. O monitoramento estava todo verde. O problema não estava no servidor — estava no que o health check não olhava.

O /health que a maioria escreve é raso:

GET /health  ->  200 {"status":"ok"}

Ele só prova que o processo subiu e responde HTTP. Não toca no banco, não toca no gateway de pagamento, não toca na fila. É o pior tipo de teste: o que passa sempre.

Um health check útil é o deep check — ele exercita as dependências críticas e degrada o status quando alguma falha:

GET /health/deep
  - SELECT 1 no Postgres            (timeout 500ms)
  - ping no gateway de pagamento    (timeout 800ms)
  - LLEN na fila de pedidos         (alerta se > N)
  ->  200 se tudo ok, 503 se alguma dependência crítica falha

Só que deep check ainda é você perguntando pro sistema se ele está bem. O que pega os problemas que o cliente sente de verdade é medir sintoma:

  • Taxa de erro: % de respostas 5xx acima de um limite (ex: 2% em 5 min) vira alerta.
  • p95, não média: a média esconde o cliente que esperou 8s. Alerte no percentil 95.
  • Teste sintético: um robô refazendo o caminho real (login -> carrinho -> pagar em sandbox) a cada minuto.

Dá pra montar o sintético mais burro possível com cron + curl + webhook:

# a cada minuto: se o deep-check falhar, avisa no canal
* * * * * curl -fsS -m 10 https://api.exemplo.com/health/deep || notificar_slack "deep-check falhou"

(o notificar_slack é um script de uma linha que chama o webhook do seu canal)

Não é caro nem exótico. Datadog, Grafana e Prometheus fazem isso muito melhor, mas o curl no cron já tira você do escuro. O erro quase nunca é técnico — é de prioridade: ninguém configura o alerta porque "o servidor estava no ar".

Regra que levo comigo: se o seu único alerta é "servidor não responde", o seu cliente é o seu sistema de monitoramento.

Versão completa no blog: https://revin.com.br/pt/blog/quem-descobriu-a-queda-primeiro

Carregando publicação patrocinada...