Heartbeat-Checks (Push-Monitoring)
Heartbeat-Checks drehen das Monitoring um: Statt dass LIVCK deinen Service aufruft, meldet sich dein Job bei LIVCK. Treffen die Meldungen pünktlich ein, ist alles in Ordnung; bleibt eine aus, schlägt LIVCK Alarm (Dead-Man's-Switch).
Ideal für Dinge, die LIVCK nicht von außen prüfen kann:
- Cronjobs (z.B. nächtlicher Datenbank-Export)
- Backups (läuft das Backup wirklich jede Nacht?)
- Geplante Tasks (Rechnungslauf, Newsletter, Cleanup)
- Worker & Queues (verarbeitet der Hintergrund-Worker noch?)
Verfügbar in allen Plänen
Heartbeat-Checks – inklusive Cron-Zeitplänen – sind in allen Plänen enthalten, auch im Free-Plan. Ein Heartbeat zählt wie ein normaler Service auf dein Service-Limit.
So funktioniert es
- Du legst einen Heartbeat-Service an und gibst an, wie oft dein Job sich melden soll.
- LIVCK erzeugt eine eindeutige Ping-URL.
- Dein Job ruft diese URL nach jedem erfolgreichen Lauf auf.
- Bleibt der erwartete Ping aus (plus Toleranz), wird der Service Offline – und löst Incident und Benachrichtigungen aus wie jeder andere Service.
Da nichts von außen geprüft wird, hat ein Heartbeat keine Monitoring-Standorte und keine Antwortzeit-Checks.
Heartbeat erstellen
- In der Seitenleiste auf Services → Service erstellen klicken.
- Als Check-Typ Heartbeat wählen.
- Einen Namen eingeben (z.B. "Nächtliches Backup").
- Den Zeitplan festlegen (siehe unten).
- Speichern. LIVCK zeigt sofort deine Ping-URL an.
Ping-URL ist geheim
Die Ping-URL enthält ein Token, das wie ein Passwort wirkt – wer sie kennt, kann Pings senden. Teile sie nicht öffentlich. Ist sie durchgesickert, kannst du das Token auf der Detailseite neu generieren (die alte URL wird sofort ungültig).
Den Zeitplan festlegen
Zwei Möglichkeiten, wann LIVCK einen Ping erwartet:
Einfaches Intervall
Der Abstand, in dem dein Job sich meldet – z.B. alle 60 Sekunden, alle 3600 Sekunden (stündlich) oder alle 86400 Sekunden (täglich).
Das kürzeste Intervall hängt vom Plan ab und entspricht dem Prüfintervall aktiver Checks:
| Plan | Kürzestes Intervall |
|---|---|
| Free | 120 Sekunden (2 Min.) |
| Ab Solo-Plan Solo | 60 Sekunden (1 Min.) |
| Ab Team-Plan Team | 30 Sekunden |
| Ab Business-Plan Business | 30 Sekunden |
Cron-Ausdruck
Für unregelmäßige Zeitpläne nutzt du einen Cron-Ausdruck – dieselbe Syntax wie in einer Crontab. Wähle dazu eine Zeitzone, damit 0 3 * * * wirklich „3 Uhr deiner Zeit" bedeutet.
| Cron-Ausdruck | Bedeutung |
|---|---|
0 3 * * * | Täglich um 03:00 Uhr |
*/15 * * * * | Alle 15 Minuten |
0 0 * * 0 | Jeden Sonntag um Mitternacht |
0 9 1 * * | Am 1. jeden Monats um 09:00 Uhr |
Toleranz (Grace)
Echte Jobs starten selten auf die Sekunde genau. Die Toleranz ist ein Puffer, den LIVCK zusätzlich zum Zeitplan wartet, bevor der Service Offline geht – das verhindert Fehlalarme durch Netzwerk-Jitter oder Cron-Ungenauigkeit.
Standard sind 5 Minuten, Minimum 30 Sekunden. Wähle sie so, dass sie übliche Schwankungen abdeckt, aber kurz genug ist, um echte Ausfälle schnell zu erkennen.
Pings senden
Dein Job ruft die Ping-URL auf – mit jedem HTTP-Client, per GET, POST oder HEAD.
# Am Ende deines Cronjobs:
curl -fsS https://ping.livck.cloud/dein-token
Auf der Detailseite findest du fertige Code-Schnipsel zum Kopieren.
Signale: mehr als nur „läuft"
An die Ping-URL kannst du ein Signal anhängen, um LIVCK genauer zu informieren:
| Signal | Aufruf | Bedeutung |
|---|---|---|
| Erfolg | …/dein-token | Der Lauf war erfolgreich (Standard, ohne Zusatz). |
| Start | …/dein-token/start | Der Job hat gerade begonnen. So kann LIVCK die Laufzeit messen. |
| Fehler | …/dein-token/fail | Der Job ist fehlgeschlagen → Service wird sofort Offline. |
| Exit-Code | …/dein-token/{code} | Der Exit-Code deines Skripts. 0 = Erfolg, alles andere = Fehler. |
Beispiel mit Start- und Erfolgs-Ping:
curl -fsS https://ping.livck.cloud/dein-token/start # Job beginnt
# ... dein Job läuft ...
curl -fsS https://ping.livck.cloud/dein-token # Job erfolgreich beendet
Beispiel: Exit-Code automatisch melden:
dein-backup-skript.sh
curl -fsS https://ping.livck.cloud/dein-token/$?
Maximale Laufzeit (optional)
Nutzt du das Start-Signal (/start), kannst du zusätzlich eine maximale Laufzeit festlegen. Läuft dein Job länger und meldet keinen Erfolg, erkennt LIVCK ihn als hängend und schlägt Alarm – auch wenn der nächste reguläre Zeitpunkt noch nicht erreicht ist. So findest du Jobs, die stecken bleiben, statt gar nicht zu starten.
Status verstehen
| Status | Bedeutung |
|---|---|
| Unbekannt | Angelegt, aber noch nie gepingt. Mit dem ersten Ping wird er Online. |
| Online | Die Pings treffen wie erwartet ein. |
| Offline | Ein erwarteter Ping ist ausgeblieben (Zeitplan + Toleranz überschritten), ein fail-Signal kam, oder die maximale Laufzeit wurde überschritten. |
Sobald wieder ein erfolgreicher Ping eintrifft, wird der Service automatisch Online und ein laufender Incident wird aufgelöst.
Zusätzliche Telemetrie (optional)
Im Body des Ping-Requests kannst du Messwerte und Log-Ausgaben mitschicken (z.B. Anzahl verarbeiteter Datensätze, Dauer, Fehlerzahl). LIVCK speichert sie und zeigt sie in der Lauf-Historie. Komplett optional – ein Ping ohne Body funktioniert genauso. Schlägt die Verarbeitung fehl (z.B. zu groß), zählt der Ping trotzdem als erfolgreich.
Was du auf der Detailseite siehst
- Deine Ping-URL mit Kopier- und
curl-Schnipseln - Den aktuellen Lauf-Status (z.B. „läuft gerade", „zuletzt erfolgreich vor 2 Min.")
- Einen Hinweis, falls noch nie gepingt wurde
- Die Lauf-Historie (Erfolge, Fehler, Timeouts, hängende Läufe)
- Dauer-Statistiken und deine Telemetrie
- Die Uptime über die Zeit
Weiterführende Themen
- Manuelle Services – Status komplett von Hand verwalten
- Bedingungen – Regeln für aktive Checks
- Incidents – Übersicht – Was passiert, wenn ein Heartbeat ausbleibt
- Eskalationsrichtlinien – Wer wird bei einem ausgefallenen Job benachrichtigt