Skip to content

lebe-dev/cronbird

Repository files navigation

cronbird

Rust Build Status License

cronbird is a lightweight HTTP service that monitors cron job execution through callback pings and exports metrics for Prometheus/VictoriaMetrics.

When a cron job completes, it sends a POST to cronbird. If a callback isn't received within the expected timeframe, your monitoring system raises an alert.

Features

  • Single binary, no external dependencies (no database, no Redis)
  • ~3 MB memory, ~12.5 MB Docker image
  • Prometheus text exposition format + JSON metrics
  • Optional bearer token authentication
  • Periodic state snapshots to JSON file
  • Graceful shutdown, health checks, structured logging

Quick Start

cp .env.example .env
# edit .env
docker compose up -d

Send a callback from your cron job:

pg_dump mydb > /backup/mydb.sql && \
  curl -X POST http://cronbird:8080/callback/daily-backup

Check metrics:

curl http://cronbird:8080/metrics

Set up an alert in Prometheus:

- alert: CronJobMissed
  expr: time() - cronbird_last_callback_timestamp_seconds > 7200
  for: 5m
  annotations:
    summary: "Cron job {{ $labels.identity }} missed callback"

Documentation

Topic Link
Installation (Docker) docs/installation/DOCKER.md
Installation (Kubernetes) docs/installation/KUBERNETES.md
Installation (from source) docs/installation/SOURCE.md
Configuration .env.example
API docs/API.md
Monitoring & Alerts docs/monitoring/PROMETHEUS.md
Security docs/security/SECURITY.md
Troubleshooting docs/TROUBLESHOOTING.md
Development DEV.md

License

MIT

About

Metrics for cronjobs

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors