Documentación

Inicio rápido

Integra CronBeacon en 5 minutos.

  1. Crea una cuenta en cronbeacon.com
  2. Genera un token API en la pestaña Tokens
  3. Añade el wrapper bash a tus cron jobs (o un simple curl)
  4. Configura el schedule de cada job para activar la detección de ejecuciones perdidas

Conceptos clave

Job

Un job representa una tarea planificada a supervisar (cron, ETL, backup, worker...). Defines su planning esperado y CronBeacon verifica que se ejecute correctamente.

Run

Un run es una ejecución individual de un job. Cada evento recibido (started, succeeded, failed) crea un run inmutable con timestamp, duración y metadatos.

Alerta

Una alerta se activa cuando un job falla su schedule (missed), devuelve error (failing) o se degrada. Las alertas se envían por email, Slack o webhook según los canales configurados.

Estado

El estado de un job se calcula de forma continua: on_time, late, degraded, missed, failing. La puntuación de fiabilidad (7d / 30d) ofrece una visión a largo plazo de la salud de cada job.

Estados de un job

EstadoSignificado
on_timeEl último run fue exitoso dentro del tiempo esperado.
lateEl run fue exitoso pero después del grace period.
degradedEl job funciona pero con anomalías (duración excesiva, errores parciales).
missedNingún run recibido en el tiempo esperado. El job probablemente no se ejecutó.
failingEl último run falló (event: failed).

Integración

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 único
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);
Ver la referencia API completa