Your cron job failed at 2am. Did you know?
Silent failures are the worst kind. Your backup didn't run. The ETL pipeline stalled. The cert renewal script crashed. Nobody found out until Monday morning — or worse, until data was gone.
You can't monitor cron jobs with uptime checks.
An HTTP monitor checks if a URL is reachable. But a cron job that fails silently still returns 200 on the health endpoint. The only way to know a job ran is if the job tells you it ran.
How heartbeat monitoring works
Create a heartbeat in Upwatch
Set the expected interval (every hour, every day) and a grace period. We give you a unique ping URL.
Append the ping URL to your job
One curl call at the end of your script. Works with cron, systemd timers, GitHub Actions, CI pipelines, or any shell script.
We alert you when the silence is too long
If we don't hear from your job within the interval + grace period, we open an incident and notify you immediately.
What people monitor with heartbeats
Database Backups
Know instantly if your nightly pg_dump or mysqldump didn't complete.
ETL Pipelines
Catch stalled data pipelines before downstream reports start showing stale data.
Cert Renewals
Confirm your certbot or acme.sh renewal script is running before the cert expires.
CI / Deploy Jobs
Alert if your scheduled deploy or test pipeline stops running.
Cleanup Scripts
Temp file cleanup, log rotation, cache prune — the jobs nobody thinks about until disk fills up.
Scheduled Reports
Verify your weekly report generator ran before stakeholders ask why their inbox is empty.
Works everywhere you run jobs
/opt/scripts/backup.sh
curl -fsS https://upwatch.dev/ping/TOKEN > /dev/null
# ... your job logic ...
urllib.request.urlopen("https://upwatch.dev/ping/TOKEN")
run: curl -fsS https://upwatch.dev/ping/TOKEN
Full docs include wget, PowerShell, Node.js, and the /fail endpoint for explicit failure reporting.
Built by an SRE who's been paged at 3am too many times
Solo dev · Self-funded · No VC money
"The cron job that didn't run is the one that bites you. I've seen DBAs lose sleep over backups that silently stopped two weeks ago. Heartbeat monitoring is the fix that costs you one curl command."
Early adopter offer
Use code EARLY at checkout
3 months of Pro — completely free
Unlimited heartbeats + unlimited monitors, 30-second checks, Slack/Discord alerts
The next silent failure is already scheduled. Would you rather find out at 2am or Monday morning?
Monitor Your First Cron Job — Free10 free heartbeats. No credit card. Setup in 60 seconds.