Know when a cron job silently stops running

Backups, imports, reports and queue workers fail without making a sound. Give each job a heartbeat: it calls a private URL every time it finishes, and if a call doesn't arrive on time, you get an email.

Works with anything that can send a request
Cron, systemd timers, Kubernetes CronJobs, GitHub Actions, Windows Task Scheduler or one line at the end of a script. GET or POST, no agent to install.
Your schedule, your margin
From every minute to once a week, with a grace period of up to a day for jobs whose run time varies.
Alerted at once, cleared by the next ping
The grace period is already your tolerance, so the email goes out as soon as a job is late. When the next ping arrives, the monitor is back up.

How it works

  1. 1

    Create a heartbeat

    Tell us how often the job runs and how much delay is acceptable.

  2. 2

    Add one line to your job

    Call the ping URL when the job finishes successfully, for example with curl after &&.

  3. 3

    We watch the clock

    If no ping arrives within the interval plus the grace period, the monitor goes down and we email you.

Questions and answers

Instead of us checking your server, your job checks in with us. Each run ends with a request to a private URL. If we don't hear from it in time, something went wrong: the job failed, hung, or the server is off.

At the end, and only when the job succeeded. In a shell that means chaining the call with &&, so a failed job never sends the ping.

Yes, a heartbeat is a monitor like any other: 10 monitors on Free and 25 on Pro, mixed as you like.

The URL contains a long random token and can only mark the job as done. Keep it private, like a password. If it leaks, delete the heartbeat and create a new one.

More features

Add a heartbeat to your most important job

Free for 10 monitors. No credit card required.

Start monitoring free