What Is Heartbeat Monitoring?
Reviewed by Ionut Caval · Updated June 2026
Heartbeat monitoring watches for a regular signal (a "heartbeat") sent by a job or service and raises an alert when that signal does not arrive on time. It inverts a normal uptime check: instead of you reaching out to the service, the service checks in with you, which makes it the standard way to watch cron jobs and other background tasks that have no public URL to probe.
Heartbeat monitoring solves a problem that ordinary external checks cannot. A nightly backup script, a queue worker, or a scheduled data sync has no endpoint a monitor can request, and worse, when one of these silently fails to run, nothing errors and nobody notices until the missing output causes a problem days later. With heartbeat monitoring, the job itself sends a small signal (typically an HTTP request to a unique URL) every time it finishes successfully. The monitor expects that signal on a schedule, and if it does not arrive within a grace period, it alerts. The absence of a heartbeat is the alert.
How heartbeat monitoring works
You configure two values per check: the expected interval and a grace period. The interval matches the job's schedule, and the grace period absorbs normal variation in run time so a job that takes a little longer than usual does not trigger a false alarm. A concrete example: a backup that runs every 24 hours might be set to a 24-hour interval with a 1-hour grace period, so the monitor only alerts if more than 25 hours pass with no ping. The flow is simple:
- The job runs and, on success, sends a request to its unique heartbeat URL.
- The monitor records the timestamp and resets its countdown to (interval + grace).
- If the next ping arrives in time, nothing happens and the check stays healthy.
- If the countdown expires with no ping, the job is presumed failed and an alert fires.
More advanced setups send a signal at both the start and the end of a run, which lets the monitor also catch a job that started but hung or crashed midway, and measure how long each run took. Because the signal is sent from inside the job, heartbeat monitoring is sometimes called passive or push monitoring, in contrast to the active, "pull" model of synthetic monitoring.
Heartbeat vs health-check and synthetic monitoring
The distinction is who initiates the contact. A health check and synthetic monitoring are pull-based: the monitor calls the service on a schedule and judges the response. Heartbeat monitoring is push-based: the service calls the monitor, and silence is failure. This is exactly what makes it suited to work that has no inbound URL. The two models are complementary, and many teams run both: synthetic checks confirm the user-facing site stays up and feeds the uptime metric, while heartbeats confirm the invisible scheduled work behind it actually ran. Pulsetic's cron job monitoring provides heartbeat URLs for your scheduled tasks, and for a broader look at active checks see the comparison of synthetic monitoring versus real user monitoring.
See also: Cron job monitoring
Frequently asked questions
-
What is the difference between heartbeat monitoring and a health check?
A health check is pull-based: the monitor calls the service on a schedule and inspects the response. Heartbeat monitoring is push-based: the service sends a signal to the monitor, and a missing signal is the alert. Heartbeats suit cron jobs and background workers that have no URL to call, while health checks suit services that expose an endpoint.
-
What is a grace period in heartbeat monitoring?
The grace period is the extra time the monitor waits beyond the expected interval before declaring a missed heartbeat. It absorbs normal variation in run time so a job that finishes a little late does not trigger a false alert. For example, a 24-hour job with a 1-hour grace period only alerts after 25 hours of silence.
-
Why do cron jobs need heartbeat monitoring?
When a cron job fails to run or dies silently, nothing throws an error and no page goes down, so the failure can go unnoticed for days until the missing result causes a problem. Heartbeat monitoring catches this by expecting a regular check-in and alerting on its absence, which an external uptime check cannot do because the job has no endpoint to probe.
-
Can heartbeat monitoring detect a job that hangs?
Yes, if you send a signal at both the start and the end of each run. The monitor can then flag a job that started but never reported completion within the expected window, catching hangs and mid-run crashes in addition to runs that never started at all.
-
Put these metrics to work. Monitor your site free.
2-minute setup · Cancel any time
-
No credit card needed