Heartbeat monitoring

Monitor cron jobs running on your own servers with heartbeat pings — detect missed, failed, and stuck runs.

A heartbeat check is a dead-man’s switch for a job running on your own infrastructure. Your job pings SteadyCron when it runs; if the ping doesn’t arrive on schedule, you get alerted before users notice.

This is ideal for nightly database backups, ETL pipelines, certificate renewals, log rotation, queue workers, and any cron you can’t (or don’t want to) move off your servers.

The ping URL

Each heartbeat check has a unique ping URL. Send an HTTP request to it from your job — from any language or shell. The simplest case is a single curl at the end of your script:

# your work here ...
curl -fsS https://ping.steadycron.com/<your-ping-token>

Ping types

You can send three kinds of ping to signal different points in a run:

  • /start — the job has started. Lets SteadyCron measure duration and detect runs that begin but never finish.
  • /success (the default, no suffix) — the job completed successfully.
  • /fail — the job ran but failed. Use this to alert on explicit errors, not just missing pings.
TOKEN=<your-ping-token>
curl -fsS https://ping.steadycron.com/$TOKEN/start
# ... run the job ...
if ./run-backup.sh; then
  curl -fsS https://ping.steadycron.com/$TOKEN
else
  curl -fsS https://ping.steadycron.com/$TOKEN/fail
fi

You can also include a short payload (e.g. a log tail) with the ping; it’s stored truncated for context in the activity feed.

Schedule and grace period

Tell SteadyCron how often the job should run — a cron expression or a simple interval — and set a grace period. The grace period absorbs normal variance (a backup that usually finishes at 02:05 but sometimes at 02:12). Once a ping is overdue beyond the grace period, the check is considered missed and an alert fires.

Detecting stuck runs

If you send a /start ping but no matching /success or /fail arrives within the expected window, SteadyCron flags the run as stuck (abandoned) — catching jobs that hang rather than fail outright.

Status at a glance

Each check shows its current state: on time, late (overdue but within grace), missed, or failing. The dashboard surfaces failing checks first so problems are obvious.

Next steps