nano-api / pulse
A cron job that stops
does not tell anyone
So the job pings on success, and the missing ping is what gets reported. I built this twice before with a table and a second cron job watching the first one, which is a second cron job that can also stop.
Free. Signup is one curl and the key comes back in the response. No form, no
card, nobody to ask.
POST /v1/ping/nightly-backup One line in your crontab
0 3 * * * /usr/local/bin/backup.sh && \
curl -fsS -X POST -H "Authorization: Bearer $NANO_API_KEY" \
https://pulse.nano-api.com/v1/ping/nightly-backup
The && is the trick: if the job fails, the ping never happens, and silence
is what gets alerted on. First ping creates the monitor;
?interval=86400&grace=3600 sets the window.
Why an uptime check misses this
An uptime check
- Pings your server, sees HTTP 200
- Silent when the nightly export never ran
- Blind to queue workers, CronJobs, laptop scripts
- Needs your job reachable from the internet
NanoPulse
- Waits for the job itself to report success
- Alerts on absence, which is the part a prober cannot see
- Works anywhere
curlworks - Takes a payload: "12,043 rows exported"
How it works
- 1
Ping on success
One HTTP call at the end of the job. GET or POST.
- 2
A sweep notices
Every minute, at the edge, it checks who has gone quiet.
- 3
It says so once
On the way down, and again on recovery. Transitions only.
What the alert looks like
Any HTTPS webhook works; a Slack incoming webhook needs no configuration, because the body is Slack-shaped. The text says which failure it is: silence, or the job reporting its own failure.
notified: true on the event means the receiver answered 2xx, so you can
tell "nobody was told" from "nobody read it".
- Monitor nightly-backup has not pinged for 99s (expected every 30s + 30s grace). 02:06
- Schedule nightly-report failed: endpoint returned HTTP 500 (3 attempts). 02:07
- Monitor nightly-backup is reporting again. 02:14
Using it with the others
Relay runs the job for you; Lock keeps it to one copy. Put a ping at the end and a missing Relay run is an alert too.