Introduction
CronWarden watches your scheduled work — cron jobs, backups, batch pipelines, anything that runs on a timer — and tells the right people when something goes wrong.
What sets it apart is what it counts as wrong. A scheduled job can exit cleanly and still have failed: the backup ran but wrote an empty file, the nightly sync finished but touched zero rows, the export completed at half its usual size. A process reporting back only means it didn't crash — not that it did its job. Most monitoring never notices, because it only checks whether a job pings in at all, so a job that runs on schedule, exits cleanly, and quietly does nothing looks perfectly healthy. CronWarden goes further: alongside the check-in, it looks at the value a run reports and how long the run took, and measures both against rules you define — so a wrong number or an impossibly fast run is treated as a failure even when the exit code says success.
Late is not down
A job that's a minute behind on a slow night is not the same as a job that's been silent for an hour, and CronWarden treats them differently. It moves a monitor through graduated states — up, late, degraded, then down — so a brief delay sits quietly in a warning state (or nudges a warning channel, if you opt in) while a genuine outage pages someone. A slow evening doesn't wake anyone at 3 a.m.
Escalation until someone answers
When something does break, the first alert goes out on the channel and at the severity you chose. If nobody acknowledges it, CronWarden keeps going — re-notifying, then falling back to the next person or channel — until someone actually responds, so an incident never gets quietly dropped because one notification was missed.
The checks you can set
The outcome and timing checks are opt-in: you decide which ones matter for each monitor, and CronWarden alerts when a run breaks a rule you've set.
- On the value a run reports — set a floor, a ceiling, or a maximum percent deviation from the run's recent average. Once any value check is enabled, a run that succeeds but reports no value counts as a failure, because missing evidence isn't a pass.
- On how long a run takes — set a minimum duration to catch runs that finish suspiciously fast, or a drift threshold to catch runs that stray too far from their usual time.
The deviation and drift checks compare each run against the trailing average of recent runs, and start applying once a monitor has a handful of runs behind it. CronWarden enforces the thresholds you set — it doesn't invent them for you.
Where to go next
- Quickstart — create your first monitor and watch it check in, in about two minutes.
- Check-ins — how a run reports its result and its duration.
- Alerting — graduated states, the channels you can reach, and the escalation ladder.
- Monitors as code — the API, crontab import, and Prometheus scraping.