Les contrôles de disponibilité classiques interrogent un service depuis l’extérieur. Cela ne fonctionne pas pour un script de sauvegarde, un import nocturne ou un worker de file d’attente : ils n’ont pas d’adresse à vérifier, et quand ils s’arrêtent, rien ne casse visiblement jusqu’à ce que quelqu’un ait besoin des données. Un heartbeat inverse la logique : la tâche se signale, et le silence déclenche l’alerte.
La tâche appelle sa propre URL quand elle se termine, souvent avec curl à la fin de la ligne de crontab. Le moniteur connaît le planning et accorde un délai de grâce aux tâches dont la durée varie. Des pings au démarrage et en cas d’échec détectent aussi les tâches bloquées, trop longues, ou qui s’exécutent mais échouent.
Exemple
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://YOUR-PING-URL
S’exécute chaque jour à 03:00 et n’envoie un ping que si la sauvegarde réussit (&&). Si aucun ping n’est arrivé à 03:00 plus la période de grâce, la tâche est considérée en panne.