CronPup

← Guides

Heartbeat monitoring vs uptime monitoring: what each one catches

Most teams already have uptime monitoring: a service requests your homepage or API every minute and alerts when it fails. That's the right tool for things that are supposed to be reachable. It's the wrong tool for things that are supposed to happen, like backups, reports, data syncs, queue workers and certificate renewals.

Uptime (synthetic) monitoringHeartbeat monitoring
Who sends the requestThe monitor calls your serviceYour job calls the monitor
What it provesAn endpoint answeredA job ran (and succeeded) on schedule
CatchesOutages, slow responses, bad deploysJobs that never ran, failed, or hung
Works behind firewallsNo, it needs a public endpointYes, it only needs outbound HTTPS
Typical targetsWebsites, APIsCron, backups, ETL, workers, CI schedules

Why uptime checks miss job failures

When the nightly backup doesn't run, every endpoint is still up. There is no error to observe, only something missing. A heartbeat flips the check around: the job reports in, and silence is the alarm. That's also why heartbeats work for jobs on private networks. They only need to make one outbound request.

Do you need both?

Usually, yes. Uptime monitoring for your public surface, heartbeats for everything scheduled or asynchronous. CronPup does the heartbeat side, plus TLS expiry checks. If you also want uptime checks from one vendor, a broader platform may suit you better. See the comparison.

Getting started

0 3 * * *  /opt/jobs/backup.sh && curl -fsS -m 10 https://cronpup.com/p/YOUR-UUID

Create a free account (10 monitors) and add that one line.