# Heartbeats
Mit Heartbeats ĂŒberwachst du Prozesse, die von sich aus aktiv werden sollen â z.B. Cronjobs, Backup-Skripte, Queue-Worker oder geplante Batch-Jobs. Statt dass Sitealarm deine Anwendung abruft (wie bei App-Health oder der VerfĂŒgbarkeitsĂŒberwachung), meldet sich dein Skript bei jedem erfolgreichen Lauf selbst bei Sitealarm zurĂŒck ("Dead-Man's-Switch"-Prinzip).
Meldet sich dein Skript nicht innerhalb des erwarteten Zeitraums, geht Sitealarm davon aus, dass der Job nicht (mehr) lÀuft, und benachrichtigt dich.
Heartbeats stehen auf jedem Plan zur VerfĂŒgung (auch Free) und teilen sich mit deinen Monitoren ein gemeinsames Kontingent (siehe Limits).
# Los geht's
Wenn du einen Heartbeat anlegst, erhÀltst du eine eindeutige Ping-URL. Diese rufst
du am Ende (oder am Anfang) deines Skripts auf â z.B. per curl am Ende eines Cronjobs.
0 * * * * dein-backup-skript.sh && curl -fsS --retry 3 -o /dev/null "https://ping.sitealarm.app/{token}"
Solange dieser Aufruf regelmĂ€Ăig innerhalb des konfigurierten Intervalls eingeht, bleibt der Heartbeat auf "Aktiv". Bleibt er aus, wechselt der Status nach spĂ€testens Intervall + Toleranz auf "Ausgefallen" und du wirst benachrichtigt.
# Zwei Ping-URLs
Jeder Heartbeat hat zwei gleichwertige URLs, die du verwenden kannst:
- Kurze URL (empfohlen):
https://ping.sitealarm.app/{token}â kompakt, ideal fĂŒr Cronjob-Einzeiler. - Standard-API-URL:
https://sitealarm.app/api/v2/heartbeat/{token}â falls du lieber mit dem klassischen API-Endpunkt arbeitest oder eine ausdrĂŒckliche Fehlermeldung senden willst (siehe unten).
Beide Varianten sind per GET oder POST erreichbar â es macht keinen Unterschied,
welche HTTP-Methode du nutzt.
Wichtig: Ăber die kurze URL kannst du nur einen erfolgreichen Lauf melden
willst du explizit einen Fehler melden (z.B. wenn dein Skript selbst erkennt,
dass etwas schiefgelaufen ist), nutze die Standard-API-URL mit dem
/failed-Suffix (siehe nÀchster Abschnitt).
# Erfolg oder Fehler melden
Ăber die Standard-API-URL stehen dir zwei Endpunkte zur VerfĂŒgung:
| Endpunkt | Bedeutung |
|---|---|
GET/POST /api/v2/heartbeat/{token} | Lauf war erfolgreich. |
GET/POST /api/v2/heartbeat/{token}/failed | Lauf ist explizit fehlgeschlagen. |
Optional kannst du eine kurze Nachricht mitschicken, die z.B. in der Benachrichtigungs-Mail und im Verlauf angezeigt wird:
curl "https://sitealarm.app/api/v2/heartbeat/{token}?message=Backup+erfolgreich,+120MB"
oder bei einem Fehler:
curl "https://sitealarm.app/api/v2/heartbeat/{token}/failed?message=Backup+fehlgeschlagen:+Speicherplatz+voll"
Beide Endpunkte antworten immer mit einem leeren 200 OK â unabhĂ€ngig davon,
ob der Token gĂŒltig ist oder ein interner Fehler auftrat. So kannst du
den Ping-Aufruf in deinem Skript ohne komplizierte Fehlerbehandlung anhÀngen,
ohne dass ein Sitealarm-Problem deinen eigentlichen Job beeinflusst.
# Intervall und Toleranz
Beim Anlegen eines Heartbeats legst du zwei Werte fest:
- Intervall (
period) â wie oft dein Skript sich normalerweise melden sollte. - Toleranz (
grace) â zusĂ€tzlicher Puffer, bevor ein ausbleibender Ping als Ausfall gewertet wird.
Ein Heartbeat gilt als ĂŒberfĂ€llig, sobald seit dem letzten erfolgreichen Ping mehr als Intervall + Toleranz vergangen ist:
FĂ€llig ab = letzter Ping + Intervall + Toleranz
In der OberflĂ€che stehen dir fĂŒr beide Werte gĂ€ngige Zeitfenster zur Auswahl (1/5/10/30 Minuten, 1 Stunde, fĂŒr das Intervall zusĂ€tzlich 1 Tag). Ăber die API sind beliebige Werte in Sekunden möglich (jeweils mindestens 60 Sekunden). Ohne Angabe werden beim Anlegen Intervall und Toleranz auf jeweils 1 Stunde (3600 Sekunden) gesetzt.
Ein neu angelegter Heartbeat, der noch nie einen Ping erhalten hat, wird nicht automatisch als ausgefallen markiert â er bleibt so lange auf "Wartet auf Ping" (pending), bis der erste Ping eingeht.
# Verpasste Pings erkennen
Sitealarm prĂŒft einmal pro Minute, ob ein Heartbeat ĂŒberfĂ€llig ist. Ist ein Skript also z.B. genau zur fĂ€lligen Zeit dran, kann es bis zu einer weiteren Minute dauern, bis Sitealarm den Ausfall tatsĂ€chlich bemerkt und eine Benachrichtigung verschickt.
Meldet sich dein Skript stattdessen aktiv ĂŒber den /failed-Endpunkt, wird der
Status sofort (ohne auf die minĂŒtliche PrĂŒfung zu warten) auf "Ausgefallen" gesetzt.
Bleibt ein Heartbeat ĂŒber mehrere PrĂŒfungen hinweg am StĂŒck ausgefallen, wird aktuell nur bei der ersten erkannten Unterbrechung eine Benachrichtigung verschickt â nicht bei jedem weiteren PrĂŒflauf, solange der Ausfall andauert. Erst ein erneuter erfolgreicher Ping (Recovery) löst wieder eine Benachrichtigung aus.
# Benachrichtigungen
Bei jedem Wechsel des Status (aktiv â ausgefallen oder ausgefallen â aktiv) sendet Sitealarm dir eine E-Mail-Benachrichtigung. Reine, wiederholte Pings mit unverĂ€ndertem Status lösen keine erneute Benachrichtigung aus.
Um dich nicht mit E-Mails zu ĂŒberfluten, gilt zusĂ€tzlich ein festes Mindestintervall von 2 Minuten zwischen zwei Benachrichtigungs-Mails pro Heartbeat.
Aktuell werden Heartbeat-Benachrichtigungen ausschlieĂlich per E-Mail verschickt. Andere KanĂ€le (Microsoft Teams, Slack, Discord, Webhook), die fĂŒr Monitore und App-Health verfĂŒgbar sind, werden fĂŒr Heartbeats derzeit noch nicht unterstĂŒtzt.
Du kannst Heartbeat-Benachrichtigungen in den E-Mail-Benachrichtigungseinstellungen deines Kontos deaktivieren.
# Pausieren
FĂŒr Heartbeats existiert im Datenmodell bereits die Möglichkeit, die Ăberwachung fĂŒr Wartungsfenster zu pausieren â ein pausierter Heartbeat wird von der AusfallprĂŒfung ĂŒbersprungen. Diese Funktion ist derzeit aber noch nicht ĂŒber die OberflĂ€che oder die API steuerbar; es gibt noch keine Möglichkeit, einen Heartbeat selbst zu pausieren oder wieder zu aktivieren.
# Verlauf
Zu jedem Heartbeat werden die letzten 25 Ereignisse (Statuswechsel bzw. Pings) gespeichert und in der Detailansicht angezeigt â inklusive Status, Nachricht, Zeitpunkt und Anzahl fehlgeschlagener Versuche. Ăltere EintrĂ€ge werden tĂ€glich automatisch entfernt. Anders als bei App-Health gibt es hier keine zeitbasierte, planabhĂ€ngige Aufbewahrungsfrist, sondern einen festen Umfang von 25 EintrĂ€gen pro Heartbeat â unabhĂ€ngig vom Plan.
# Verwalten ĂŒber die API
Heartbeats lassen sich vollstĂ€ndig ĂŒber die API verwalten:
| Methode | Endpunkt | Beschreibung |
|---|---|---|
GET | /api/v2/heartbeats | Liste aller eigenen Heartbeats |
POST | /api/v2/heartbeats | Neuen Heartbeat anlegen |
GET | /api/v2/heartbeats/{id} | Details inkl. Verlauf |
PATCH | /api/v2/heartbeats/{id} | Name, Intervall, Toleranz, Aktivierung Àndern |
DELETE | /api/v2/heartbeats/{id} | Heartbeat löschen (inkl. Verlauf) |
Beim Anlegen kannst du name, period (Sekunden, min. 60) und grace
(Sekunden, min. 60) angeben. Fehlen sie, verwendet Sitealarm die genannten Standardwerte.
# Limits
Heartbeats sind auf jedem Plan (auch Free) grundsĂ€tzlich verfĂŒgbar. Sie teilen sich jedoch mit deinen Monitoren ein gemeinsames Kontingent: Jeder Heartbeat zĂ€hlt genauso wie ein Monitor gegen das Limit deines Plans. Hast du z.B. auf dem Free-Plan ein Limit von 5, kannst du entweder 5 Monitore, 3 Monitore und 2 Heartbeats, oder eine beliebige andere Kombination anlegen â niemals aber mehr als insgesamt 5 EintrĂ€ge gleichzeitig.
â SSL-Zertifikate App-Health â