Documentazione

Avvio rapido

Integra CronBeacon in 5 minuti.

  1. Crea un account su cronbeacon.com
  2. Genera un token API nella scheda Tokens
  3. Aggiungi il wrapper bash ai tuoi cron job (o un semplice curl)
  4. Configura lo schedule di ogni job per attivare il rilevamento delle esecuzioni mancate

Concetti chiave

Job

Un job rappresenta un'attività pianificata da monitorare (cron, ETL, backup, worker...). Definisci il suo planning atteso e CronBeacon verifica che venga eseguito correttamente.

Run

Un run è una singola esecuzione di un job. Ogni evento ricevuto (started, succeeded, failed) crea un run immutabile con timestamp, durata e metadati.

Avviso

Un avviso viene attivato quando un job manca il suo schedule (missed), fallisce (failing) o si degrada. Gli avvisi vengono inviati via email, Slack o webhook in base ai canali configurati.

Stato

Lo stato di un job viene calcolato in continuo: on_time, late, degraded, missed, failing. Il punteggio di affidabilità (7g / 30g) offre una visione a lungo termine della salute di ogni job.

Stati di un job

StatoSignificato
on_timeL'ultimo run è riuscito entro il tempo atteso.
lateIl run è riuscito ma dopo il grace period.
degradedIl job funziona ma con anomalie (durata eccessiva, errori parziali).
missedNessun run ricevuto entro il tempo atteso. Il job probabilmente non è stato eseguito.
failingL'ultimo run è fallito (event: failed).

Integrazione

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 — Evento singolo
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);
Vedi il riferimento API completo