A maioria do monitoramento responde "isto está quebrado?". Um dead man's switch responde uma mais difícil: "isto parou de acontecer?". Essa distinção importa, porque as falhas mais perigosas são as silenciosas, um backup noturno que parou de rodar há três semanas, um cron job que morreu sem erro.

O que é um dead man's switch

Um dead man's switch, também chamado heartbeat monitoring ou cron monitoringinverte o modelo. Em vez de você pingar o job, o job pinga você toda vez que roda. Se o ping esperado não chega a tempo, o monitor dispara.

  • Monitor tradicional: "checo seu endpoint a cada minuto e alerto se der erro". Não vê jobs sem endpoint.
  • Dead man's switch: "me pingue a cada 24h; se não, alerto". Detecta a parada silenciosa.

Para que usar

Backups noturnos, cron jobs, pipelines ETL, renovação de certificados, workers de filas.

Como configurar

    # crontab: backup noturno 2am, ping ao ter sucesso
0 2 * * * /usr/local/bin/backup.sh && curl -fsS https://heartbeat.example.com/ping/seu-monitor-id

Se o backup falha (o && corta) ou o job não roda, o ping não dispara e o monitor alerta após passar a janela. Dê um período de carência (24h + 1h) para o jitter normal não te acordar.

Alertas onde você vai ver

Um dead man's switch só funciona se o alerta chegar a uma pessoa. Envie para o canal que seu time realmente olha (Slack, email, SMS ou um pager), assim você fica sabendo no dia em que o job fica mudo, e não no mês seguinte. Muitas ferramentas de uptime e monitores de cron dedicados oferecem heartbeat checks; se você montar o seu, rode a checagem em infraestrutura separada dos jobs que ela vigia.

Artigos relacionados