Documentação

Início Rápido

Integre o CronBeacon em 5 minutos.

  1. Crie uma conta em cronbeacon.com
  2. Gere um token de API na aba Tokens
  3. Adicione o wrapper bash aos seus cron jobs (ou um curl simples)
  4. Configure o agendamento para cada job para ativar a detecção de execuções perdidas

Conceitos Chave

Job

Um job representa uma tarefa agendada a monitorar (cron, ETL, backup, worker...). Você define seu agendamento esperado e o CronBeacon verifica se ele roda corretamente.

Run

Um run é uma única execução de um job. Cada evento recebido (iniciado, sucesso, falha) cria um run imutável com timestamp, duração e metadados.

Alerta

Um alerta é disparado quando um job perde seu agendamento (missed), falha (failing) ou degrada. Alertas são enviados por e-mail, Slack ou webhook baseado nos seus canais configurados.

Estado

O estado de um job é computado continuamente: no prazo, atrasado, degradado, perdido, falhando. A pontuação de confiabilidade (7d / 30d) dá uma visão de longo prazo da saúde de cada job.

Estados do Job

EstadoSignificado
on_timeA última execução teve sucesso dentro do tempo esperado.
lateA execução teve sucesso, mas após o período de tolerância.
degradedO job está rodando, mas com anomalias (duração excessiva, erros parciais).
missedNenhuma execução recebida no tempo esperado. O job provavelmente não executou.
failingA última execução falhou (evento: failed).

Integração

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);
Veja a referência completa da API