Pular para conteúdo

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

  1. Criar conta em https://uptimerobot.com (free tier — não precisa cartão)
  2. Confirmar email
  3. Em My Settings → Alert Contacts, adicionar:
  4. Email: henriqueferrazmoura@gmail.com (default, já vem)
  5. 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