Dokumentation
Schnellstart
CronBeacon in 5 Minuten integrieren.
- Erstellen Sie ein Konto auf cronbeacon.com
- Generieren Sie einen API-Token im Tab Tokens
- Fügen Sie den Bash-Wrapper zu Ihren Cron Jobs hinzu (oder einen einfachen curl)
- Konfigurieren Sie den Schedule jedes Jobs, um die Erkennung fehlender Ausführungen zu aktivieren
Grundkonzepte
Job
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.
Run
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.
Benachrichtigung
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.
Status
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.
Job-Status
| 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). |
Integration
Bash wrapper
#!/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 — Einzelnes Event
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}'
PHP
$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);