CronBeacon in 5 Minuten integrieren.
Ein Job repräsentiert eine zu überwachende geplante Aufgabe (Cron, ETL, Backup, Worker...). Sie definieren den erwarteten Zeitplan und CronBeacon prüft, ob er korrekt ausgeführt wird.
Ein Run ist eine einzelne Ausführung eines Jobs. Jedes empfangene Event (started, succeeded, failed) erstellt einen unveränderlichen Run mit Zeitstempel, Dauer und Metadaten.
Eine Benachrichtigung wird ausgelöst, wenn ein Job seinen Zeitplan verpasst (missed), fehlschlägt (failing) oder sich verschlechtert. Benachrichtigungen werden per E-Mail, Slack oder Webhook gemäß Ihren konfigurierten Kanälen gesendet.
Der Status eines Jobs wird kontinuierlich berechnet: on_time, late, degraded, missed, failing. Der Zuverlässigkeitswert (7T / 30T) gibt einen langfristigen Überblick über den Zustand jedes Jobs.
| Status | Bedeutung |
|---|---|
| on_time | Der letzte Run war erfolgreich und innerhalb der erwarteten Zeit. |
| late | Der Run war erfolgreich, aber nach der Grace period. |
| degraded | Der Job läuft, aber mit Anomalien (übermäßige Dauer, teilweise Fehler). |
| missed | Kein Run innerhalb der erwarteten Zeit empfangen. Der Job wurde wahrscheinlich nicht ausgeführt. |
| failing | Der letzte Run ist fehlgeschlagen (Event: failed). |
#!/bin/bash
CB_TOKEN="cb_your_token"
CB_URL="https://cronbeacon.com/api/v1/ingest/events"
CB_JOB="my_job_key"
START=$(date +%s%3N)
/path/to/your_script.sh
EXIT_CODE=$?
DURATION=$(( $(date +%s%3N) - START ))
if [ $EXIT_CODE -eq 0 ]; then
EVENT="succeeded"; MSG="ok"
else
EVENT="failed"; MSG="exit code $EXIT_CODE"
fi
curl -s -X POST "$CB_URL" \
-H "Authorization: Bearer $CB_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"job_key\":\"$CB_JOB\",\"event\":\"$EVENT\",\"duration_ms\":$DURATION,\"message\":\"$MSG\"}"
curl -X POST https://cronbeacon.com/api/v1/ingest/events \
-H "Authorization: Bearer cb_your_token" \
-H "Content-Type: application/json" \
-d '{"job_key":"nightly_backup","event":"succeeded","duration_ms":4200}'
$ch = curl_init('https://cronbeacon.com/api/v1/ingest/events');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer cb_your_token',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'job_key' => 'nightly_backup',
'event' => 'succeeded',
'duration_ms' => 4200,
]),
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
curl_close($ch);