Documentation
Démarrage rapide
Intégrez CronBeacon en 5 minutes.
- Créez un compte sur cronbeacon.com
- Générez un token API dans l'onglet Tokens
- Ajoutez le wrapper bash à vos cron jobs (ou un simple curl)
- Configurez le schedule de chaque job pour activer la détection des exécutions manquées
Concepts clés
Job
Un job représente une tâche planifiée à surveiller (cron, ETL, backup, worker...). Vous définissez son schedule attendu et CronBeacon vérifie qu'il s'exécute correctement.
Run
Un run est une exécution unique d'un job. Chaque event reçu (started, succeeded, failed) crée un run immuable avec horodatage, durée, et métadonnées.
Alerte
Une alerte est déclenchée quand un job rate son schedule (missed), échoue (failing), ou se dégrade. Les alertes sont envoyées par email, Slack ou webhook selon vos canaux configurés.
État
L'état d'un job est calculé en continu : on_time, late, degraded, missed, failing. Le score de fiabilité (7j / 30j) donne une vision long terme de la santé de chaque job.
États d'un job
| État | Signification |
|---|---|
| on_time | Le dernier run a réussi dans le délai attendu. |
| late | Le run a réussi mais après le délai de grâce. |
| degraded | Le job fonctionne mais avec des anomalies (durée excessive, erreurs partielles). |
| missed | Aucun run reçu dans le délai attendu. Le job ne s'est probablement pas exécuté. |
| failing | Le dernier run a échoué (event: failed). |
Intégration
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 — Event unique
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);