Cron job monitoring: hear about the job that didn't run.
Relvato gives each scheduled job a secret URL to ping when it finishes. If the ping doesn't arrive on time, you're alerted at once: a dead man's switch for cron jobs, backup scripts, scheduled tasks and CI jobs, on any server and in any language.
- ✓A ping arrives within the period plus the grace time you set
- ✓A /fail ping alerts you at once, without waiting for the deadline
- ✓An alert when pings stop, and another when they're back
- ✓The first 300 characters of a POST body kept with the ping: an error message or an exit code
- ✓A new heartbeat waits for its first ping and never alerts before it
- ✓Ping history kept for 30 days; missed check-ins listed per heartbeat on the site's Uptime tab
A cron job that stops running doesn't throw an error anywhere you'll see it. The server was rebuilt and the crontab didn't come along, a credential expired, the disk filled up, a script hangs, and the backup, the export or the invoice run simply stops happening. Waiting for the ping that should have arrived catches all of these, because the silence is the signal. For WordPress's own WP-Cron and Action Scheduler queue, see background job monitoring.
- Create a heartbeat in Relvato and you get a secret ping URL: https://app.relvato.com/api/hb/<token>. Your cron job, backup script, scheduled task or CI job requests it when it finishes, with GET, POST or HEAD.
- Add the request to the end of the job with &&, so a job that fails never pings. It's one line: no plugin, no agent, any language that can make an HTTP request.
- Set the period (how often the job runs, from 1 minute to 31 days) and a grace time of 1 minute to 7 days. If no ping arrives within the period plus the grace time, Relvato alerts you at once by email, Slack or webhook (the channels your plan includes), and again when pings resume.
- A job that knows it failed can say so: a request to the same URL ending in /fail alerts you straight away. The first 300 characters of a POST body, such as an error message or an exit code, are kept with the ping and shown in the history.
Do I need to install anything?
No. There's no plugin and no agent. Anything that can make an HTTP request can ping: a crontab line, a shell script, a Python or PHP job, a Windows scheduled task, a CI pipeline, on any server.
How do I add it to a cron job?
Put the ping after your command with &&, so it only runs when the job succeeds: 0 3 * * * /path/to/backup.sh && curl -fsS -m 10 --retry 3 https://app.relvato.com/api/hb/<token>. -fsS keeps curl quiet unless something goes wrong, -m 10 caps the request at 10 seconds and --retry 3 rides out a brief network blip.
How do I pick the period and the grace time?
The period is how often the job runs (1 minute to 31 days); the grace time is how long it may take or run late (1 minute to 7 days). For a nightly backup that takes up to 40 minutes: a period of 1 day and a grace time of 1 hour.
Can the job report its own failure?
Yes. Request https://app.relvato.com/api/hb/<token>/fail and you're alerted at once. Send it as a POST with the error message or exit code in the body: the first 300 characters are kept with the ping and shown in the history.
How many heartbeats do I get?
2 on Free, 20 on Pro, 100 on Business and 500 on Agency.
Where do I see the history?
On the site's Uptime tab in the Relvato app, where each heartbeat lists its missed check-ins. Pings are kept for 30 days, with any POST body you sent.
Is this the same as WordPress cron monitoring?
No. Background job monitoring reads WordPress's Action Scheduler queue through the Relvato plugin. Heartbeats are for jobs you run yourself, on any server, and need no plugin.
Can I use the job's cron expression instead of a period?
Yes. Give the heartbeat the job's own crontab schedule — five fields such as 0 3 * * * or */15 * * * 1-5, or @daily — and its time zone. A ping is then due by each time the expression fires plus the grace time, so a weekday-only job isn't missed on Saturday, and daylight-saving changes are handled.
Put this monitor on autopilot.
Free forever on one site — 100 runs a month, started by you or weekly, no card. Pro re-runs your monitors by itself after every update.