Cron & heartbeat monitoring · €3 per million check-ins

A missing ping sends an alert.

Uptime checks watch what must respond. Heartbeats watch what must run: backups, certificate renewals, queue workers, invoice jobs. Your job pings us after each successful run; the day the ping stays out, the silence itself raises the alarm. Setup is one line of curl.

€9 starting credit, no card, about three months of light use. After that, pay as you go from €3 a month or choose a monthly plan.

The dead man’s switch

What happens when a job stops

A simulated nightly backup, sped up for the demo: one “day” lasts four seconds and the grace window three. When you kill the job, the grace window runs out and the alert fires. Restart it to bring it back.

nightly-backup · expects a ping every 4 s · grace 3 s (demo speed) —
Nothing real dies. The alert is a simulation of what your channels would receive.

The hollow slot stays in the row. A missed run is not edited away afterwards.

How it works

Add one line per job.

01

Create a heartbeat

Name it, set the expected cadence (anything from a few minutes to once a month) and a grace window for jobs that sometimes run long. The deadline starts with the first check-in.

02

Append the ping

Add && curl -fsS <your ping URL> to the job. The && makes curl run only if the job succeeded, so a failed or hanging job never pings and both look the same: silent.

03

Alert when the ping stays out

If the ping stays out past the grace window, an incident opens and your alert channels are notified, such as Slack, PagerDuty or email.

0 3 * * * /usr/local/bin/backup.sh && curl -fsS https://app.upfour.io/v1/heartbeat/3f9c2a7e41b86d05e8a1c94f27d6b0e3

Works with anything that can send an HTTP request: crontab, systemd timers, Kubernetes CronJobs, GitHub Actions, Windows Task Scheduler or a Raspberry Pi.

Typical uses

Jobs that often go unnoticed

Nightly backupsyou find out the backup stopped running on the day you need it, or from us once the first check-in is overdue
Certificate renewalsif the renewal cron dies, nobody notices until the certificate expires
Queue workersa worker loop that pings every few minutes; a hang shows up as a missing ping
Data syncs & ETLa stopped sync only shows up as a wrong report
Invoice & billing runsif the run stops, no invoices go out and no money comes in
Scheduled emailsdigests and reminders that stop often go unnoticed for weeks
FAQ

Questions about heartbeats

How is this different from an uptime check?
An uptime check is us calling your site on the interval you configure, down to every 10 seconds. A heartbeat is your job calling us after each successful run. Uptime checks catch things that stop responding; heartbeats catch things that stop happening. A cron job that dies leaves no error and no log entry.
What if my job sometimes runs long?
That is what the grace window is for. Expect a ping every 24 hours with a 2-hour grace, and a backup that occasionally runs an hour late raises no alert, while one that vanishes does.
Does a failed job send a ping?
Not if you wire it with &&: the ping only fires when the command before it exits cleanly. Failure, crash and hang all produce the same thing: silence.
What schedules can I monitor?
Any cadence from minutes to monthly. You set the expected interval and the grace period per heartbeat. Pause a heartbeat during planned maintenance and resume it after; paused heartbeats never alert.
Is this an extra product or plan?
No. Cron & heartbeat monitoring is part of every plan, pay as you go included. Each accepted check-in costs €3 per million, so a nightly job comes to a hundredth of a cent a month. Some vendors sell this feature as a standalone product with its own subscription.
Where do the alerts go?
A missed check-in opens an incident and notifies the alert channels that match the job’s company, client and team: Slack, email, PagerDuty, webhooks and more. Jobs have no alert plan, on-call rotation or per-job channel choice, and no phone call is placed.

Add a heartbeat to every job.

€9 starting credit, no card, about three months of light use. After that, pay as you go from €3 a month or choose a monthly plan.