System Design/03 - Qualidade/Monitoring2 min
Availability Monitoring
- Que problema isso resolve?
- Quando usar / quando NÃO usar?
- Qual o principal trade-off?
- Como isso falha em produção?
Conceito
Responde a pergunta mais básica: o sistema está respondendo? — e responde do ponto de vista de quem usa, não do datacenter.
Monitoramento sintético vs real
| Sintético (ativo) | RUM — Real User Monitoring (passivo) | |
|---|---|---|
| Origem | Robôs em locais fixos | Usuários reais |
| Cobertura | Sempre, mesmo sem tráfego | Só onde há usuário |
| Consistência | Baseline estável | Varia com dispositivo e rede |
| Detecta | Queda total, regressão de fluxo | Problema regional ou de dispositivo |
Os dois se complementam: sintético detecta a queda às 3h da manhã quando ninguém está usando; RUM detecta que os usuários de uma operadora específica estão sofrendo.
O que medir
- Disponibilidade do endpoint (do lado de fora, de várias regiões)
- Fluxo crítico completo, não só o
/health— login, busca, checkout - Validade de certificado TLS e expiração de domínio
- Dependências de terceiros
Trade-offs
O erro central é medir a coisa errada: um /health que responde 200 enquanto o checkout está quebrado produz um painel verde durante um incidente. Monitoramento de disponibilidade precisa exercitar o caminho que gera valor.
O segundo é confundir "processo vivo" com "serviço disponível". Um servidor que responde 500 para toda requisição está tecnicamente no ar.
Há também a questão de como agregar: 99,9% de disponibilidade medida como média mensal esconde uma queda de 40 minutos. Medir por janelas curtas (minutos "bons" vs "ruins") reflete melhor a experiência.
E o custo do sintético: verificações muito frequentes de muitos locais geram tráfego e custo próprios, e podem inclusive disparar rate limits.
Exemplo prático
Um checkout de e-commerce monitorado em três camadas:
sintético a cada 1 min, de 5 regiões:
login → adicionar ao carrinho → finalizar (checkout de teste)
RUM:
taxa de erro e latência p95 por região, dispositivo e operadora
alerta:
2 falhas consecutivas do fluxo sintético, OU
taxa de erro real acima de 1% por 5 minutos
A dupla condição existe porque cada uma pega o que a outra perde: o sintético detecta a queda total imediatamente, e o RUM detecta a degradação que só afeta usuários móveis numa região — invisível para robôs em datacenters.
Relacionado
Parte de Monitoring · roadmap.sh/system-design