Documentation

Démarrage rapide

Intégrez CronBeacon en 5 minutes.

  1. Créez un compte sur cronbeacon.com
  2. Générez un token API dans l'onglet Tokens
  3. Ajoutez le wrapper bash à vos cron jobs (ou un simple curl)
  4. 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

ÉtatSignification
on_timeLe dernier run a réussi dans le délai attendu.
lateLe run a réussi mais après le délai de grâce.
degradedLe job fonctionne mais avec des anomalies (durée excessive, erreurs partielles).
missedAucun run reçu dans le délai attendu. Le job ne s'est probablement pas exécuté.
failingLe 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);
Voir la référence API complète