Erstelle einen Monitor, füge eine Zeile zu deinem Job hinzu und lass Cronitorex die Pings zu einer Zeitleiste verknüpfen. Ist ein Ping verspätet oder fehlt er, erreicht dich der Alarm innerhalb von 60 Sekunden.
Wähle einen Namen wie db-backup und sag Cronitorex, wie oft der Job laufen soll. Dieser Zeitplan wird zum Vertrag, den dein Job einhalten muss.
Sende run beim Start des Jobs und complete oder fail beim Ende. Alles, was eine HTTP-Anfrage senden kann, kann einen Ping senden.
Cronitorex baut aus deinen Pings eine Zeitleiste, erkennt verpasste und fehlgeschlagene Läufe und alarmiert dich per E-Mail, Telegram, Discord, Slack oder Webhook.
Wähle, was zu deinem Stack passt. Jede Variante spricht dieselbe API mit denselben drei Zuständen: run, complete, fail.
0 2 * * * curl -fsS "https://api.cronitorex.com/ping/db-backup?api_key=$CRX_KEY&status=run" >/dev/null; /usr/local/bin/backup.sh && curl -fsS "https://api.cronitorex.com/ping/db-backup?api_key=$CRX_KEY&status=complete" >/dev/null || curl -fsS "https://api.cronitorex.com/ping/db-backup?api_key=$CRX_KEY&status=fail" >/dev/null
#!/usr/bin/env bash
set -euo pipefail
ping() {
curl -fsS "https://api.cronitorex.com/ping/db-backup?status=$1" \
-H "Authorization: Bearer $CRONITOREX_API_KEY" >/dev/null
}
ping run
if /usr/local/bin/backup.sh; then
ping complete
else
ping fail
fi import os, requests
API = "https://api.cronitorex.com/ping/db-backup"
HEADERS = {"Authorization": "Bearer " + os.environ["CRONITOREX_API_KEY"]}
requests.get(API, params={"status": "run"}, headers=HEADERS)
try:
run_backup()
requests.get(API, params={"status": "complete"}, headers=HEADERS)
except Exception:
requests.get(API, params={"status": "fail"}, headers=HEADERS)
raise curl -fsS "https://api.cronitorex.com/ping/db-backup?status=run" \ -H "Authorization: Bearer $CRONITOREX_API_KEY" /usr/local/bin/backup.sh curl -fsS "https://api.cronitorex.com/ping/db-backup?status=complete" \ -H "Authorization: Bearer $CRONITOREX_API_KEY"
Stille ist auch ein Signal. Cronitorex erwartet den nächsten Lauf innerhalb des eingestellten Intervalls, plus eine Toleranzzeit, die normale Schwankungen abfängt.
Der run-Ping ist noch nicht angekommen, aber die Toleranzzeit läuft noch. Der Lauf wird als verspätet markiert, kein Alarm wird gesendet.
Die Toleranzzeit ist ohne Ping verstrichen. Cronitorex löst einen Verpasst-Alarm aus: Der Job ist überhaupt nicht gelaufen.
Ein fail-Ping, oder ein run-Ping ohne Abschluss vor dem Zeitlimit, markiert den Lauf als fehlgeschlagen und alarmiert sofort.
Ein Ping ist eine einzelne HTTPS-Anfrage. Verknüpfung, Erkennung und Alarmierung passieren auf Seiten von Cronitorex.
Registrieren, API-Schlüssel holen, curl in deinen Cron einfügen. Das war's.