Heartbeat monitoring

A minted URL for each job that runs on its own schedule, and an alert when a run does not call it in time.

Included on every plan.

PlansFreeProBusiness
What Heartbeat monitoring catches
What breakshostnag
A scheduled job stops runningYes

On the board

Sample plates of this type, drawn by the board itself.

Acme Retail

03Sample data
PingingPing
Nightly backup
nightly-backup
Pinged6 h ago
checked 1 min ago
MissedPing
Invoice sync
invoice-sync
Missed32 min
checked 1 min ago
UpReport
Warehouse scanner
warehouse-scanner
Reported3 min ago
checked 1 min ago

How it works

  1. 01

    Add the job

    A cron run, a backup, a worker: hostnag mints a ping URL for it, no installed software involved.

  2. 02

    Say how often it should call

    An expected interval and a grace period before a missed ping counts as overdue.

  3. 03

    The job calls the URL when it finishes

    One line at the end of the job's own script. Only the job can say it finished, so it pings for itself; a Beacon feeds links, status reports and certificate reports, never a job's heartbeat.

  4. 04

    Silence is the alert

    No ping past the deadline raises down, and hostnag says exactly how many minutes overdue it is.

What you'll be told

What you get told

  1. [Critical] Nightly backup missed its heartbeat

    nightly-backup has not pinged in time: 25 min overdue. The job may have stopped or hung, or it cannot reach hostnag.

    Ping
  2. [Recovered] Nightly backup is pinging again after 1 h 15 min

    nightly-backup pinged again. It was silent for 1 h 15 min.

    Ping
  3. [Warning] Checks failing for api.example.com

    We could not check api.example.com on three consecutive attempts: connect_failed: ECONNREFUSED 203.0.113.9:443.

    Cert

Sample alerts, rendered by the same code that writes your email and Slack messages.

Settings

Target
a job name, turned into a slug
Expected interval
any number of minutes
Grace period
0 to 1440min
Status reports
up, down or degraded with a message, optional cadence
Fed by
the ping URL directly from the job

Questions

Do I need to install anything on the job's host?

No. One line that calls a URL, or the Beacon, a plain script one line installs under your own scheduler, which you can read and remove yourself.

What if the job wants to report degraded instead of missing entirely?

A status report can say up, down or degraded with its own message; silence past its cadence is a "could not check", never a down.

Related

Read

Add a host. Hear about it first.

Start free