Heartbeat Monitoring

Know the moment a job stops running

A dead man's switch for your cron jobs, backups and background workers. Your job pings a unique URL each time it runs — if a ping goes missing, we open an incident and alert you, the same way we would for a site going down.

How It Works

One curl at the end of your job

Create a heartbeat monitor and you get a unique ping URL. Add it to the end of your script so it only fires when the job actually succeeds. Tell us how often the job should run and how much lateness to tolerate.

Each ping records the run and schedules the next expected one. Miss that window plus the grace period and we open an incident; the next successful ping resolves it. Reuses the same alerting, incidents and status history as the rest of your monitors.

  • A unique, unguessable ping URL per monitor
  • Expected interval + grace period you control
  • Optional ?status=fail to flag a failed run
# crontab — nightly backup
0 3 * * *  /opt/backup.sh \
  && curl -fsS https://…/ping/abc123
Nightly Backup
Last ping 2 min ago
Hourly Sync
Missed — no ping in 1h 4m

Features

Monitoring for the jobs no one watches

A URL Your Job Pings

Every heartbeat monitor gets a unique, unguessable ping URL. Add a single curl at the end of your script, cron, worker or scheduled task — in any language, on any host, behind any firewall.

Alerts When a Ping Goes Missing

Tell us how often the job should run. If a ping doesn't arrive within that window plus your grace period, we open an incident and alert every channel you've configured — exactly like a site going down.

Catch the Failures Polling Misses

A pull-based check can't see a backup that never ran or a worker that silently died. Heartbeat monitoring flips the model — the absence of a signal is the alert.

Why It Matters

A failed job is an invisible outage

When a backup doesn't run or a worker dies quietly, nothing goes "down" — there's no error page, no failing request. You find out when you need the thing it was supposed to produce. Heartbeat monitoring turns silence into an alert.

push
Your job pings us — no inbound access to your servers required
1 URL
A single curl is all it takes to instrument any job
?status=fail
Report a failed run explicitly to open an incident immediately
+ grace
A grace window absorbs normal run-time variance before alerting

Backups & Snapshots

The worst time to discover a backup hasn't run in weeks is the day you need to restore. Get alerted the first night it doesn't check in.

Queue Workers & Daemons

A worker that crashes silently keeps the process supervisor happy while your queue backs up. A periodic heartbeat from the worker proves it's actually doing work.

Scheduled Tasks & ETL

Nightly imports, report generation, cache warming, data syncs — instrument each one and know immediately when a run is skipped or fails.

FAQ

Heartbeat monitoring questions

What is heartbeat monitoring?

Heartbeat monitoring is a 'dead man's switch' for your background jobs. Instead of us reaching out to check a website, your job reaches out to us — it pings a unique URL each time it runs successfully. If the expected ping doesn't arrive in time, we alert you. It's the right tool for anything that runs on a schedule and produces no public endpoint to poll.

How is this different from uptime (HTTP) monitoring?

Uptime monitoring is pull-based: we send a request to your URL on an interval. Heartbeat monitoring is push-based: your job sends us a ping. Pull-based checks are great for websites and APIs, but they can't tell you a nightly backup failed to run or a queue worker quietly crashed — there's nothing to poll. Heartbeat covers exactly those cases.

How do I send a heartbeat?

Hit the monitor's ping URL at the end of your job — e.g. `curl -fsS https://…/ping/your-token`. Any HTTP client works (curl, wget, a one-line request in your language of choice), and GET, POST and HEAD are all accepted. To report a failed run and open an incident right away, append `?status=fail`.

What if my job's run time varies?

Set a grace period. We only open an incident once the expected interval AND the grace window have both elapsed without a ping, so normal variance in how long a job takes won't trigger a false alarm.

Do you need access to my server?

No. Heartbeat monitoring is outbound-only from your side — your job makes a single HTTPS request to us. There's nothing to open in your firewall and no agent to install.

Is heartbeat monitoring available on the free plan?

Heartbeat (and cron) monitoring is available on the Basic plan and above, alongside ping, port, DNS and domain monitoring. The free plan covers HTTP/HTTPS uptime and JSON response assertions.

Stop finding out the hard way

Add a heartbeat to every job that matters. 14-day free trial on paid plans, cancel anytime.