Heartbeat-Monitore
Ein Heartbeat-Monitor überwacht einen Job, der nach Zeitplan läuft -- ein nächtliches Backup, einen stündlichen Export, ein Edge-Gerät, das sich regelmäßig meldet. Der Job ruft nach jedem erfolgreichen Durchlauf eine URL auf, und Pulse löst einen Vorfall aus, sobald dieser Aufruf ausbleibt.
Dieser Monitortyp funktioniert als einziger umgekehrt: Pulse baut keine Verbindung auf. Pulse wartet, und das Schweigen ist der Alarm. Damit ist er die richtige Wahl für alles, was Pulse nicht direkt erreichen kann -- einen Cron-Job hinter einer Firewall, ein Skript auf einem Notebook, ein Gateway an einem entfernten Standort.
Ein Heartbeat ist eine Datenquelle: Pulse erfasst von ihr genau ein Signal -- "ein Ping ist eingetroffen" -- und ein gewöhnlicher Monitor alarmiert, wenn dieses Signal verstummt. Ihre Heartbeats finden Sie unter Datenquellen, den zugehörigen Monitor in der Monitorliste neben allen anderen.
Heartbeat erstellen

- Öffnen Sie Datenquellen und klicken Sie auf Neu -- oder nutzen Sie Erstellen in der Monitorliste
- Wählen Sie Heartbeat
- Füllen Sie die Felder aus:
| Feld | Beschreibung |
|---|---|
| Name | Ein aussagekräftiger Name, üblicherweise der Name des Jobs (z. B. Nächtliches Backup) |
| Erwartetes Intervall | Wie oft der externe Auftrag sich melden soll. Mindestens 1 Minute |
| Einheit | Minuten, Stunden oder Tage |
| Karenzzeit | Wie viel später ein Ping eintreffen darf, bevor Pulse einen Vorfall auslöst. Alarmiert wird nach dem erwarteten Intervall zuzüglich dieser Zeit |
| Einheit der Karenzzeit | Sekunden, Minuten oder Stunden |
| Eskalationsrichtlinie | Welche Eskalationsrichtlinie greift, wenn der Ping ausbleibt |
| Tags | Kategorisierung des Heartbeats |
Mit dem Heartbeat entsteht zugleich sein Monitor, benannt nach ihm. Dieser Monitor ist ein ganz gewöhnlicher: Sie können ihn stummschalten, einem Team zuordnen, seine Eskalationsrichtlinie ändern oder ihn öffnen und neben der Ping-Prüfung eine eigene Bedingung ergänzen.
Das erwartete Intervall entspricht dem Zeitplan, nach dem Ihr Job läuft. Stellen Sie es so ein, wie oft der Job tatsächlich läuft -- nicht großzügiger.
Die Karenzzeit deckt Schwankungen in der Laufzeit des Auftrags ab. Ein Backup, das stündlich läuft, gelegentlich aber einige Minuten länger braucht, sollte mit einer Karenzzeit dieser paar Minuten eingerichtet werden, damit ein langsamer Durchlauf keinen Alarm auslöst. Pulse löst einen Vorfall erst aus, wenn sowohl das erwartete Intervall als auch die Karenzzeit ohne Ping verstrichen sind. Eine Karenzzeit von null bedeutet, dass Pulse sofort alarmiert, sobald das erwartete Intervall überschritten ist.
Die Uhr läuft ab dem Anlegen des Monitors, nicht ab dem ersten Ping. Bleibt jeder Ping aus, löst der Monitor seinen ersten Vorfall aus, sobald das erwartete Intervall zuzüglich der Karenzzeit abgelaufen ist. Bis zum ersten Ping oder bis zu dieser ersten Frist hat der Monitor den Status Unbekannt.
Die Ping-URL
Jeder Heartbeat erhält eine eigene Ping-URL, die auf seiner Seite unter Datenquellen angezeigt wird.

Klicken Sie auf die Schaltfläche neben der URL, um sie in die Zwischenablage zu kopieren. GET, POST und HEAD zählen alle als Ping -- Sie können also verwenden, was auf dem Zielsystem ohnehin vorhanden ist: curl, wget, eine geplante Aufgabe oder ein zweizeiliges Skript.
Die URL ist nur aus Ihrem Netzwerk erreichbar. Ein Job auf einem System, das Pulse nicht erreicht, kann auch nicht pingen.
Behandeln Sie die Ping-URL wie ein Passwort
Wer die URL kennt, kann einen Heartbeat fälschen -- und ein gefälschter Heartbeat bedeutet, dass ein fehlgeschlagener Job als gesund gemeldet wird.
Fügen Sie die URL nicht in Chat-Nachrichten, Tickets, Wiki-Seiten oder gemeinsam genutzte Dokumente ein. Chat-Werkzeuge und Ticketsysteme erzeugen Link-Vorschauen, indem sie die URL aufrufen -- und allein dieser Aufruf zählt bereits als Ping. Ein an bequemer Stelle eingefügter Link kann den Monitor also unbemerkt auf Grün halten, solange die Vorschau aktualisiert wird.
Hinterlegen Sie die URL dort, wo bei Ihnen ohnehin Geheimnisse liegen: in der Konfigurationsverwaltung, in einem Secrets-Manager oder direkt im Skript des Jobs auf dem ausführenden System.
Ping-URL erneuern
Wenn die URL nach außen gelangt ist, klicken Sie auf der Heartbeat-Seite unter Datenquellen auf URL erneuern. Die alte URL funktioniert sofort nicht mehr -- hinterlegen Sie die neue also unverzüglich. Ein Job, der weiterhin die alte URL aufruft, zählt nicht mehr als Ping, und der Monitor löst nach Ablauf des erwarteten Intervalls einen Vorfall aus.
Das Erneuern tauscht ausschließlich die URL. Historie, erwartetes Intervall und ein eventuell offener Vorfall bleiben unverändert.
Einbindung in Cron
Setzen Sie den Ping hinter den Job und verknüpfen Sie beide mit &&:
0 2 * * * /usr/local/bin/backup.sh && curl -fsS https://pulse.example.com/api/heartbeats/ping/ihr-token&& bedeutet „nur wenn der vorherige Befehl erfolgreich war". Schlägt das Backup fehl, läuft der Ping nicht, Pulse hört nichts -- und Sie bekommen genau den Vorfall, den Sie haben wollten.
Es gibt drei typische Fehler, die alle dazu führen, dass ein Monitor dauerhaft „gesund" meldet, obwohl der Job kaputt ist:
- Verknüpfung mit
;statt&&. Ein Semikolon führt den Ping aus, unabhängig davon, ob der Job erfolgreich war. - Der Ping steht vorne.
curl ... && /usr/local/bin/backup.shpingt, bevor der Job überhaupt etwas getan hat. - Der Ping steht am Anfang des Skripts. Dasselbe Problem, nur eine Datei weiter weg und im Review deutlich schwerer zu erkennen.
Die Regel ist einfach: Der Ping ist das Erfolgssignal des Jobs. Es darf also nichts pingen, bevor der Job durchgelaufen und erfolgreich war.
Die Optionen -fsS sorgen dafür, dass curl bei Erfolg still bleibt und bei einem HTTP-Fehler fehlschlägt -- ein Netzwerk- oder Serverproblem taucht dadurch in Ihrer Cron-Mail auf, statt unbemerkt zu bleiben.
Eine vertippte oder rotierte Ping-URL erscheint dort allerdings nicht: Der Ping-Endpunkt antwortet immer mit 200 OK, unabhängig davon, ob das Token gültig ist -- so kann niemand darüber prüfen, ob ein gefundenes Token noch aktiv ist. Eine falsche URL fällt genauso auf wie ein Job, der nicht mehr läuft: Der Monitor hört nichts mehr von Ihnen und löst nach Ablauf des erwarteten Intervalls einen Vorfall aus. Prüfen Sie nach dem Einrichten oder Rotieren einer URL den Letzten Ping des Monitors, um sicherzugehen, dass er angekommen ist.
Wenn Ihr Job ein längeres Skript statt eines einzelnen Befehls ist, setzen Sie den Ping in die letzte Zeile und sorgen Sie dafür, dass das Skript bei einem Fehler vorzeitig abbricht:
#!/bin/sh
set -e
run_the_backup
verify_the_backup
curl -fsS https://pulse.example.com/api/heartbeats/ping/ihr-tokenMit set -e bricht jeder fehlgeschlagene Schritt das Skript ab, bevor es den Ping erreicht.
Wenn der Ping ausbleibt
Sobald das erwartete Intervall zuzüglich der Karenzzeit ohne Ping verstreicht, wechselt der Monitor auf Ungesund und Pulse öffnet einen nach dem Monitor benannten Vorfall. Ab diesem Punkt folgt der Vorfall wie jeder andere seiner Eskalationsrichtlinie, sodass die richtigen Personen über die gewohnten Kanäle benachrichtigt werden.
Der nächste eintreffende Ping stellt den Monitor wieder her und löst den Vorfall automatisch auf.
Aktivitätsverlauf
Pings werden im Aktivitätsverlauf des Monitors festgehalten. So beantworten Sie die Frage „Ist das Backup diesen Monat wirklich jede Nacht gelaufen?" direkt in Pulse. Aufeinanderfolgende Pings werden zu einem Eintrag zusammengefasst -- klicken Sie auf Alle N anzeigen, um ihn aufzuklappen.
Pings, die weniger als 30 Sekunden auseinanderliegen, werden nur einmal festgehalten. Ein Job, der kurz hintereinander erneut versucht zu pingen, erzeugt daher einen einzelnen Eintrag statt einen pro Versuch. Auf die Gesundheit des Monitors hat das keinen Einfluss: Jeder Ping setzt die Frist zurück, auch wenn er keinen neuen Eintrag erzeugt.
Da ein Heartbeat-Monitor bis zu einmal pro Minute gepingt werden kann, werden Ping-Einträge für die Aufbewahrungsdauer Ihrer Organisation gespeichert und danach entfernt. Statuswechsel -- also das Ausfallen und Wiederherstellen des Monitors -- bleiben als langfristiger Nachweis erhalten.
Hinweise
- Heartbeat-Monitore lassen sich nicht über den CSV-Import anlegen. Jeder von ihnen trägt eine eigene geheime URL, die an den pingenden Job verteilt werden muss -- deshalb werden sie einzeln angelegt.
- Heartbeat-Monitore lassen sich in geplante Berichte aufnehmen, indem Sie im Monitortyp-Filter des Berichts Heartbeat auswählen.
- Filtern, Stummschalten, Tags und alles andere, was für jeden Monitortyp gilt, finden Sie unter Monitore.

