Guide

A job that reports in

Every other monitor measures from the outside in. This one waits to be called — because work like a nightly backup fails by not happening, and silence is exactly what a check from outside cannot tell from health.

Step by step

  1. Go to Website monitoring and press + New monitor, the same place a website goes.
  2. Under What to watch, choose A job that reports in. The URL, the points of presence and the confirmations disappear with it: nothing of ours goes anywhere, and there is one witness — the job itself.
  3. Name it after the job and not after the machine it runs on. Nightly backup is what you want to read at three in the morning.
  4. Runs every is the interval the job promises — 24h for a nightly one, 1h for an hourly one. For is the grace beyond it: how much later than usual it may finish before we say anything. Late is the two added together, never the interval alone, so a job that starts at 02:00 and now and then takes twenty minutes longer is 24h and 1h.
  5. Press Create monitor. The clock starts there and not at the first call: from that moment the job has one interval plus its grace to report in.
  6. Open the monitor and press Edit. The Ping URL is in the form with a button that copies it — that is the one to paste, not the one below.

What you copy

The address the job calls
https://api.hopmango.com/v1/hb/hmhb_...

Yours carries your own token, which begins hmhb_. GET and POST are both accepted and both answer an empty 204, so a job’s exit status never depends on parsing a response, and there is no key and no header: a crontab line and a CI step should not be carrying an API key. The token is a capability and not a password — it says one sentence about one monitor and can read nothing — and if it leaks, one call to the API or to MCP mints a new one and the old address stops answering that instant.

One line at the end of the job. -fsS keeps curl quiet unless it fails, -m 10 stops a slow call from holding up the work, and the && is the point: the ping only happens if the job actually succeeded.

0 3 * * * /opt/backup.sh && curl -fsS -m 10 https://api.hopmango.com/v1/hb/hmhb_...

And for a job that knows it failed. fail opens the incident at once, without waiting out the grace — that window exists to tell silence from a bad minute, and a job saying it failed is neither. message is carried onto the incident timeline as text and is never interpreted: not parsed, not matched against anything, not turned into a severity. Five hundred characters, which is a sentence and not a stack trace. The next successful call resolves it.

/opt/backup.sh || curl -fsS -m 10 -X POST \
  -H "Content-Type: application/json" \
  -d '{"status":"fail","message":"backup exited non-zero"}' \
  https://api.hopmango.com/v1/hb/hmhb_...

When it stops calling

Past Runs every plus For the monitor has a failed run, and a call that never came opens exactly the incident a broken website opens: the same severity, the same channels, the same escalation ladder, the same timeline. Your alert policies already route it, and the alert says which kind of monitor it came from, so the nightly backup can go somewhere other than the storefront.

A job that has stopped produces one failed run per interval and not one per minute: one that promised to call daily is one failure a day, which is the cadence its uptime figure is measured at. The next call it makes resolves the incident. And if you ticked Show on the public status page, it appears there like any other monitor — its name, its state and its uptime, never the address it is called on.

The one thing people get wrong

Pinging at the start of the job instead of at the end. A backup that calls the moment it wakes up is reporting “I began”, and a script that begins every night and fails every night stays green for ever. Put the call after the work and chain it with &&, so a failure never reaches it. The other half of the same mistake is a grace of nothing: a job that usually finishes at 02:05 and occasionally at 02:40 then wakes somebody for being slow, which is the alert people stop believing by the third time.

Where to go next

Then where that incident goes, and who gets woken if nobody picks it up.