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.
# crontab: nightly backup
0 3 * * * /opt/backup.sh \ && curl -fsS https://sentinel.sh/ping/abc123
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. It reuses the same alerting, incidents and status history as the rest of your monitors.
- A unique, unguessable ping URL per monitor
- Expected interval and grace period you control
- Optional ?status=fail to flag a failed run
Monitor settings
- Expected every
- 24 hours
- Grace period
- 30 minutes
- Method
- GET · POST · HEAD
- On miss
- Open incident + alert
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 and 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 and daemons
A worker that crashes silently keeps the process supervisor happy while your queue backs up. A periodic heartbeat proves it's actually doing work.
Scheduled tasks and ETL
Nightly imports, report generation, cache warming, data syncs: instrument each one and know immediately when a run is skipped or fails.
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, because 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, for example `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.
No card for the free plan · 14-day trial on paid plans · Cancel anytime