Moniteurs Heartbeat (tâches cron)
Ce qu'est un moniteur Heartbeat
Un moniteur Heartbeat est un dispositif d'homme mort passif pour du travail censé s'exécuter selon un calendrier : tâches cron, sauvegardes nocturnes, pipelines ETL, workers de files d'attente et tâches d'arrière-plan similaires. Au lieu que LoadFocus appelle votre service, votre tâche appelle LoadFocus chaque fois qu'elle se termine avec succès. Si le ping attendu n'arrive pas à temps, le moniteur passe en DOWN et les alertes se déclenchent.
Contrairement aux vérifications actives, un moniteur Heartbeat ne sonde rien et n'a pas de régions. Il attend simplement que votre tâche se signale. C'est idéal pour vérifier que le travail planifié s'est réellement exécuté, et pas seulement qu'un point de terminaison est joignable.
Comment ça marche
- Vous créez un moniteur Heartbeat et définissez à quelle fréquence votre tâche doit se signaler, plus une période de grâce.
- LoadFocus vous donne une URL de ping unique.
- Votre tâche appelle cette URL à chaque exécution réussie.
- Si un ping arrive dans la fenêtre attendue, le moniteur reste UP.
- Si aucun ping n'arrive dans l'intervalle + période de grâce, le moniteur passe en DOWN et les alertes se déclenchent. LoadFocus vérifie les pings manqués une fois par minute : l'alerte peut donc arriver jusqu'à environ une minute après intervalle + grâce.
- Le prochain ping réussi rétablit le moniteur en UP.
Un nouveau moniteur n'est pas marqué DOWN tant qu'il n'a pas reçu son premier ping : exécutez donc votre tâche une fois (ou appelez l'URL à la main) après l'enregistrement.
Créer un moniteur Heartbeat
- Ouvrez la page de nouvelle vérification API.
- Choisissez le type Heartbeat.
- Choisissez la Planification :
- Intervalle fixe : réglez l'Intervalle de ping attendu (secondes), de
60secondes à 30 jours (par exemple3600pour une tâche horaire). - Planification cron : saisissez une Expression cron (UTC) (par exemple
0 9 * * 1-5pour les jours ouvrés à 09:00 UTC).
- Intervalle fixe : réglez l'Intervalle de ping attendu (secondes), de
- Réglez une Période de grâce (secondes), la marge supplémentaire accordée avant de déclarer la tâche en retard (par exemple
300). - Choisissez vos canaux d'alerte et enregistrez le moniteur.
- Copiez l'URL de ping que LoadFocus affiche après l'enregistrement. Elle ressemble à
https://apimonitor.loadfocus.com/ping/<token>.
Pinguer l'URL depuis votre tâche
Faites appeler l'URL de ping par votre tâche une fois qu'elle s'est terminée avec succès. Toute méthode HTTP convient : GET, POST ou HEAD fonctionnent.
Le plus simple est d'ajouter un appel curl à la fin de votre script ou de votre entrée cron :
curl -fsS https://apimonitor.loadfocus.com/ping/<your-token>
L'option -f fait échouer curl sur les erreurs HTTP, -s le rend silencieux et -S affiche quand même les vraies erreurs. N'exécutez cela qu'en cas de succès, par exemple en dernière ligne de la tâche, afin qu'une exécution échouée ne pingue pas et que le moniteur détecte correctement l'absence.
L'URL elle-même est le secret : toute personne qui la possède peut pinguer le moniteur, ne la mettez donc pas dans des dépôts publics.
Alertes et rétablissement
- Quand intervalle + grâce s'écoule sans ping, le moniteur passe en DOWN et vos canaux d'alerte sont notifiés.
- Quand le ping suivant arrive, le moniteur se rétablit en UP et une notification de rétablissement est envoyée.
Pour savoir où vont les alertes, voir Canaux d'alerte. Pour des vérifications actives par région, voir plutôt Comment créer une nouvelle vérification API.