LIVCK Cloud

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

  1. Du legst einen Heartbeat-Service an und gibst an, wie oft dein Job sich melden soll.
  2. LIVCK erzeugt eine eindeutige Ping-URL.
  3. Dein Job ruft diese URL nach jedem erfolgreichen Lauf auf.
  4. 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

  1. In der Seitenleiste auf ServicesService erstellen klicken.
  2. Als Check-Typ Heartbeat wählen.
  3. Einen Namen eingeben (z.B. "Nächtliches Backup").
  4. Den Zeitplan festlegen (siehe unten).
  5. 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:

PlanKürzestes Intervall
Free120 Sekunden (2 Min.)
Ab Solo-Plan Solo60 Sekunden (1 Min.)
Ab Team-Plan Team30 Sekunden
Ab Business-Plan Business30 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-AusdruckBedeutung
0 3 * * *Täglich um 03:00 Uhr
*/15 * * * *Alle 15 Minuten
0 0 * * 0Jeden 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:

SignalAufrufBedeutung
Erfolg…/dein-tokenDer Lauf war erfolgreich (Standard, ohne Zusatz).
Start…/dein-token/startDer Job hat gerade begonnen. So kann LIVCK die Laufzeit messen.
Fehler…/dein-token/failDer 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

StatusBedeutung
UnbekanntAngelegt, aber noch nie gepingt. Mit dem ersten Ping wird er Online.
OnlineDie Pings treffen wie erwartet ein.
OfflineEin 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