When the cron stops, you hear about it first.
Alwaysbeat is reliable monitoring for scheduled work — it works like a dead man's switch. Your job sends a heartbeat (a quick HTTP ping) when it finishes; miss the window, and we page you — backups, cron, pipelines, daemons, watched from one place.
# nightly backup, cron: 0 3 * * * pg_dump mydb | gzip > /backups/db.sql.gz && \ curl -fsS https://ping.alwaysbeat.com/ping/$CHECK_ID # └─ 03:31 with no ping → alert
No agent. No polling. Absence is the signal.
Define the schedule
An interval (every 15m) or a cron expression with a real IANA timezone — DST and leap days handled for you. You get one unguessable ping URL.
Ping when the work is done
Append a curl to your job. Add /start and /fail if you want run durations and explicit failures; skip them if you don't.
We watch the clock
Schedule plus grace elapses with no ping? That's the alert — sent once on the way down, once on recovery. Not every minute.
Boring where it counts. Sharp where it matters.
/start with the finishing ping to catch jobs that hang or crawl, not just ones that vanish.Checks live next to the jobs that run them.
A first-class Terraform provider, not a community afterthought. Declare a check, wire its ping_url straight into the job, and let the schedule review itself in your pull requests.
resource "alwaysbeat_check" "nightly_backup" { name = "nightly-backup" schedule = { kind = "cron" cron_expr = "0 3 * * *" tz = "Europe/Berlin" } grace = "30m" channels = ["webhook:https://ops.example/hooks/dmf"] } # hand the URL straight to the job that pings it output "ping_url" { value = alwaysbeat_check.nightly_backup.ping_url }
Stop learning about broken jobs from your users.
First check takes about a minute. Free while you kick the tires.