UStackUStack
FerrisPulse icon

FerrisPulse

FerrisPulse monitora jobs em background com pings de heartbeat e alerta quando execuções de cron/filas/backup esperadas param. Envia alerta down e e-mail de recuperação.

FerrisPulse

O que é o FerrisPulse?

FerrisPulse é um serviço de monitoramento de heartbeat para jobs em background e automação agendada. Em vez de verificar se um app responde a requisições HTTP, ele espera um “ping” de sucesso dos seus cron jobs, workers de fila, backups e outros scripts.

Se o próximo heartbeat esperado não chegar dentro do cadence configurado, o FerrisPulse envia um alerta down e, em seguida, um e-mail de recuperação automaticamente quando os pings retomam. O objetivo é transformar “falha silenciosa” (um job que para de rodar enquanto o resto do sistema parece saudável) em um incidente visível com linha do tempo.

Principais Recursos

  • Monitoramento de heartbeat para cadences esperados de jobs: o FerrisPulse vigia por um ping de sucesso incoming em um agendamento (ex.: horário ou noturno) e trata pings ausentes como condição down.
  • URL de ping de sucesso por monitor: você copia uma URL de ping específica do monitor e a chama via HTTP POST só após o job terminar com sucesso, para que o “heartbeat” reflita trabalho concluído.
  • Alertas down mais e-mails de recuperação: quando um heartbeat falta, o FerrisPulse envia um alerta down; quando o próximo ping chega, envia um e-mail de recuperação e fecha o incidente.
  • Linha do tempo de incidentes e histórico de heartbeats: o dashboard mostra status, histórico de heartbeats e janelas de incidentes, sem precisar reconstruir falhas a partir de logs.
  • Suporte a cadence configurável e período de graça: monitores incluem intervalo esperado e podem ter período de graça para variabilidade de runtime.

Como Usar o FerrisPulse

  1. Crie um monitor para o job que deseja rastrear, defina o intervalo esperado (cadence) e adicione período de graça se necessário.
  2. Copie a URL de ping do monitor.
  3. Na sua automação, envie um HTTP POST para a URL de ping só após o job completar com sucesso.
  4. Deixe o FerrisPulse rodando; ele detectará heartbeats ausentes, enviará alertas down e, depois, e-mails de recuperação quando os pings retomarem.

Casos de Uso

  • Cron job que deve rodar por hora: configure um monitor horário e pingue a URL após o script terminar. Se o script parar silenciosamente por várias horas, o FerrisPulse envia alerta down com o cadence esperado e link do dashboard.
  • Verificação de snapshot de backup: para backups noturnos, configure um monitor diário e emita o ping só após o backup completar com sucesso. Isso ajuda a captar casos onde o pipeline de backup trava sem disparar alarmes de uptime geral da aplicação.
  • Saúde de worker de fila (trabalho concluído, não só saúde do servidor): ao usar workers de fila, envie o ping de sucesso após o processamento concluir. O FerrisPulse pode alertar quando o cadence esperado de trabalho bem-sucedido para.
  • Pipeline ETL/reporting agendado: para syncs de billing ou relatórios horários/diários, pingue no fim do workflow. O FerrisPulse mantém linha do tempo de incidentes para que runs perdidos virem evento rastreável.
  • Scripts de automação acionados por infraestrutura agendada: seja o agendamento interno ou externo, o workflow é o mesmo — envie ping após o script concluir com sucesso e deixe o FerrisPulse detectar silêncio.

FAQ

Como notifico o FerrisPulse que um job rodou?

Você chama uma URL de ping HTTP POST específica do monitor após o job terminar com sucesso. O FerrisPulse espera pings no cadence configurado.

O que dispara um alerta?

Um alerta é disparado quando o próximo heartbeat/ping esperado não chega pelo cadence monitorado (com suporte a período de graça).

O FerrisPulse alerta repetidamente durante um incidente?

A página descreve um alerta down por incidente e um e-mail de recuperação separado quando o ping retorna, evitando storm de alertas duplicados.

Onde vejo o que aconteceu?

O FerrisPulse oferece uma visão de dashboard que inclui status, histórico de heartbeats, janelas de incidentes e comportamento de alertas em um só lugar.

Quais sistemas de jobs ele suporta?

O site indica que pode ser usado com cron, systemd timers e ecossistemas de worker/scheduler como BullMQ, Sidekiq, Celery, GitHub Actions, além de linguagens/ambientes como Bash, Node.js, Python e Ruby.

Alternativas

  • Monitoramento de uptime/health check (verificações de endpoint HTTP): Útil para disponibilidade do app, mas pode não detectar “falha silenciosa” em que o servidor web está saudável enquanto jobs em background (cron/filas/backups) não estão rodando.
  • Alertas baseados em logs: Alertas podem ser acionados por mensagens de erro após o fato, mas ainda pode exigir verificação ativa de logs e não detecta execuções ausentes tão diretamente quanto um heartbeat.
  • Notificações de agendadores de jobs (alertas integrados de cron/systemd/GitHub Actions): Alguns ambientes notificam falhas, mas o fluxo é diferente porque o FerrisPulse foca em um ping explícito de sucesso e monitora o ritmo esperado.
  • Ferramentas de monitoramento de filas focadas em backlog/throughput: Elas rastreiam comportamento de workers e filas, mas o FerrisPulse monitora especificamente a presença de heartbeats de sucesso no momento da conclusão do trabalho.
FerrisPulse | UStack