Heartbeat-Monitore (Cron-Jobs)

Was ein Heartbeat-Monitor ist

Ein Heartbeat-Monitor ist ein passiver Totmannschalter für Arbeit, die nach Zeitplan laufen soll: Cron-Jobs, nächtliche Backups, ETL-Pipelines, Queue-Worker und ähnliche Hintergrundaufgaben. Statt dass LoadFocus Ihren Dienst aufruft, ruft Ihr Job LoadFocus auf, jedes Mal wenn er erfolgreich endet. Trifft der erwartete Ping nicht rechtzeitig ein, geht der Monitor auf DOWN und Warnungen werden ausgelöst.

Anders als aktive Prüfungen testet ein Heartbeat-Monitor nichts und hat keine Regionen. Er wartet einfach darauf, dass Ihr Job sich meldet. Damit eignet er sich ideal, um zu prüfen, ob geplante Arbeit wirklich gelaufen ist, und nicht nur, ob ein Endpunkt erreichbar ist.

So funktioniert es

  1. Sie erstellen einen Heartbeat-Monitor und legen fest, wie oft Ihr Job sich melden soll, plus einen Kulanzzeitraum.
  2. LoadFocus gibt Ihnen eine eindeutige Ping-URL.
  3. Ihr Job ruft diese URL bei jedem erfolgreichen Lauf auf.
  4. Trifft ein Ping innerhalb des erwarteten Fensters ein, bleibt der Monitor UP.
  5. Trifft innerhalb von Intervall + Kulanzzeitraum kein Ping ein, geht der Monitor auf DOWN und Warnungen werden ausgelöst. LoadFocus prüft einmal pro Minute auf verpasste Pings, die Warnung kann also bis zu etwa eine Minute später kommen als Intervall + Kulanzzeitraum.
  6. Der nächste erfolgreiche Ping stellt den Monitor wieder auf UP her.

Ein neuer Monitor wird erst auf DOWN gesetzt, nachdem er seinen ersten Ping erhalten hat. Führen Sie Ihren Job nach dem Speichern also einmal aus (oder rufen Sie die URL von Hand auf).

Einen Heartbeat-Monitor erstellen

  1. Öffnen Sie die Seite für neue API-Prüfungen.
  2. Wählen Sie den Typ Heartbeat.
  3. Wählen Sie den Zeitplan:
    • Festes Intervall: Legen Sie das Erwartetes Ping-Intervall (Sekunden) fest, von 60 Sekunden bis 30 Tage (zum Beispiel 3600 für einen stündlichen Job).
    • Cron-Zeitplan: Geben Sie einen Cron-Ausdruck (UTC) ein (zum Beispiel 0 9 * * 1-5 für Werktage um 09:00 UTC).
  4. Legen Sie einen Kulanzzeitraum (Sekunden) fest, die zusätzliche Toleranz, bevor der Job als verspätet gilt (zum Beispiel 300).
  5. Wählen Sie Ihre Benachrichtigungskanäle und speichern Sie den Monitor.
  6. Kopieren Sie die Ping-URL, die LoadFocus nach dem Speichern anzeigt. Sie sieht aus wie https://apimonitor.loadfocus.com/ping/<token>.

Die URL aus Ihrem Job aufrufen

Lassen Sie Ihren Job die Ping-URL aufrufen, nachdem er erfolgreich beendet wurde. Jede HTTP-Methode funktioniert, GET, POST und HEAD sind also alle in Ordnung.

Am einfachsten hängen Sie einen curl-Aufruf ans Ende Ihres Skripts oder Cron-Eintrags:

curl -fsS https://apimonitor.loadfocus.com/ping/<your-token>

Das Flag -f lässt curl bei HTTP-Fehlern fehlschlagen, -s hält die Ausgabe still und -S zeigt echte Fehler trotzdem an. Führen Sie das nur bei Erfolg aus, zum Beispiel als letzte Zeile des Jobs, damit ein fehlgeschlagener Lauf nicht pingt und der Monitor den Ausfall korrekt erkennt.

Die URL selbst ist das Geheimnis: Jeder, der sie kennt, kann den Monitor pingen. Halten Sie sie also aus öffentlichen Repositories heraus.

Warnungen und Wiederherstellung

  • Verstreicht Intervall + Kulanzzeitraum ohne Ping, wechselt der Monitor auf DOWN und Ihre Benachrichtigungskanäle werden informiert.
  • Trifft der nächste Ping ein, stellt sich der Monitor auf UP wieder her und eine Wiederherstellungsbenachrichtigung wird gesendet.

Wohin die Warnungen gehen, lesen Sie unter Benachrichtigungskanäle. Für aktive, regionsbasierte Prüfungen siehe stattdessen So erstellen Sie eine neue API-Prüfung.