Setup UptimeRobot — Monitoração Externa¶
Por que: se a VPS cair, o worker travar ou o DB ficar inacessível, queremos saber em 1–2 minutos, não quando o primeiro assinante reclamar no WhatsApp. UptimeRobot é grátis até 50 monitores com checks a cada 5 min e envia alertas por email, SMS e Telegram.
1. Conta¶
- Criar conta em https://uptimerobot.com (free tier — não precisa cartão)
- Confirmar email
- Em My Settings → Alert Contacts, adicionar:
- Email: henriqueferrazmoura@gmail.com (default, já vem)
- Telegram: seguir https://uptimerobot.com/integrations/telegram
- Bot recomendado: @uptimerobot_bot
- Ou usar o seu próprio bot via webhook custom (já temos token)
2. Endpoints a monitorar¶
O /api/health foi endurecido para retornar HTTP 503 quando:
- DB está inacessível
- Sem predição há > 30 min
- > 50% dos slots ativos estão stale
Isso é o que faz o UptimeRobot disparar alerta — ele só sabe ler HTTP status.
Monitor 1 — Saúde da API (CRÍTICO)¶
- Type: HTTP(s)
- URL:
https://api.quantfx.com.br/api/health - Interval: 5 min (grátis) ou 1 min (pago)
- Keyword monitor: (opcional, free permite) —
"status":"ok" - Alert contacts: Email + Telegram
Monitor 2 — Frontend acessível¶
- Type: HTTP(s)
- URL:
https://quantfx.com.br - Interval: 5 min
- Alert contacts: Email
Monitor 3 — VPS pingável (defesa em profundidade)¶
- Type: Ping
- Host:
177.7.58.99 - Interval: 5 min
- Alert contacts: Email
3. Comportamento esperado¶
| Cenário | /api/health retorna |
UptimeRobot |
|---|---|---|
| Tudo OK | 200 + {"status":"ok"} |
✅ Up |
| Worker parado, sem predição há 35min | 503 + {"status":"down"} |
🔴 Alerta |
| 12/22 slots stale (>50%) | 503 + {"status":"degraded"} |
🔴 Alerta |
| DB caiu | 503 + {"status":"down","detail":"..."} |
🔴 Alerta |
| API container morto | conexão recusada | 🔴 Alerta |
| VPS reiniciando | timeout | 🔴 Alerta |
4. Como testar (smoke test)¶
Após deploy do /api/health atualizado:
# Local (PC dev)
curl -i http://localhost:8000/api/health
# VPS pública
curl -i https://api.quantfx.com.br/api/health
Deve retornar HTTP 200 com "status":"ok".
Para forçar 503 (debug):
1. Pause o worker: docker stop forex_worker
2. Aguarde 31 minutos
3. curl -i https://api.quantfx.com.br/api/health → deve dar 503
4. Restart: docker start forex_worker
5. Custos¶
- Free: 50 monitores, checks a cada 5 min — suficiente para começar
- Pro ($7/mês): checks a cada 1 min, retenção maior, multi-region — considerar quando passar de 20 assinantes