Aller au contenu

Heartbeat

Sur cette page
  1. Fonctionnement
  2. Quand l'appel suivant est-il attendu ?
  3. Réglages
  4. Exemple
  5. Bon à savoir

La plupart des sondes vont vérifier quelque chose. La sonde Heartbeat fonctionne à l'inverse : votre tâche appelle Onagre à chaque fois qu'elle se termine, et Onagre ouvre un incident quand l'appel attendu n'arrive pas. Utilisez-la pour ce que personne ne peut vérifier de l'extérieur : une sauvegarde nocturne, un import, une tâche cron, un worker qui doit tourner en continu.

Dans l'assistant : Scheduled job ; parmi les modèles : Scheduled job, Nightly backup, Daily import or sync, Background worker. Nécessite une offre payante. Aucun agent n'intervient.

Fonctionnement#

  1. Créez la sonde : sa planification indique quand votre tâche s'exécute, sa période de grâce combien de temps elle peut mettre à se signaler.
  2. Ouvrez la page de la sonde : la carte Heartbeat endpoint donne l'URL à appeler, avec un bouton Copy URL. L'URL contient un secret : traitez-la comme un mot de passe.
  3. À la fin de votre tâche — seulement si elle a réussi — envoyez un POST HTTP à cette URL.
  4. Chaque appel marque la sonde comme opérationnelle et fixe le moment où l'appel suivant est attendu. Si ce moment passe sans appel, la sonde tombe et un incident s'ouvre. L'appel suivant le résout, même si l'incident a été pris en charge.

La surveillance commence au premier appel : une nouvelle sonde heartbeat n'ouvre aucun incident tant que votre tâche ne l'a pas appelée au moins une fois.

Quand l'appel suivant est-il attendu ?#

Planification Appel suivant attendu avant Exemple
Interval (toutes les N minutes ou heures) le dernier appel + l'intervalle + la période de grâce Un worker qui se signale toutes les 5 minutes, grâce de 5 min : un incident s'ouvre après 10 minutes de silence.
Daily ou Weekly la prochaine exécution prévue + la période de grâce Une sauvegarde lancée à 02:00, grâce de 2 h : l'appel de chaque nuit doit arriver avant 04:00.

Les heures sont celles du fuseau horaire de votre organisation (voir Votre profil).

Réglages#

Réglage Description
Check schedule Quand votre tâche s'exécute : un intervalle, ou une heure quotidienne ou hebdomadaire. Indiquez l'heure de début de la tâche, pas sa fin.
Grace period Combien de temps après l'exécution prévue la tâche peut encore se signaler, en minutes (jusqu'à 7 jours). Prenez la durée normale la plus longue de la tâche.

Exemple#

Nightly backup lancée à 02:00, avec une période de grâce de 2 heures. À la fin du script de sauvegarde :

Terminal
#!/bin/bash
set -e
/opt/backup/run-backup.sh
curl -fsS -X POST "https://app.onagre.io/heartbeat/<your-secret>"

Avec set -e, l'appel n'est fait que si la sauvegarde a réussi : une sauvegarde en échec comme une sauvegarde qui n'a pas tourné du tout se terminent par un incident avant 04:00.

Bon à savoir#

  • Appelez l'URL depuis la tâche elle-même, une fois le travail fait — pas depuis une entrée séparée du planificateur, qui continuerait d'appeler même quand la tâche échoue.
  • Un appel toutes les 10 secondes est accepté par sonde ; un worker devrait se signaler toutes les quelques minutes au plus.
  • Une sonde en pause reste en pause quand des appels arrivent.
  • Si l'URL fuite, n'importe qui pourrait maintenir la sonde opérationnelle : créez une nouvelle sonde heartbeat pour obtenir une nouvelle URL.
  • Chaque agent privé a aussi un heartbeat interne qui indique à Onagre qu'il est connecté ; il est géré avec l'agent et n'apparaît pas dans vos ressources. Voir Surveillance publique et privée.