Heartbeat Monitoring
Monitor cron jobs, queue workers, and scheduled tasks. Instead of SiteBrief checking your site, your task pings SiteBrief on each run.
The concept
Normal uptime monitoring is active: SiteBrief checks your site. Heartbeat monitoring is passive: your task or script sends a signal ("heartbeat") to SiteBrief after each successful run. If a heartbeat doesn't arrive within the expected interval, SiteBrief alerts you.
Think of it as a "dead man's switch" — as long as your task keeps pinging, everything is fine. Silence means something went wrong.
What you can monitor
- Backup scripts — daily/weekly database or file backups
- Cron jobs — any scheduled Linux/cron task
- Queue workers — Laravel, Sidekiq, Celery, Bull, etc.
- Report generation — automated email or PDF generation tasks
- Data sync scripts — ETL pipelines, API sync jobs
- Database maintenance — vacuums, index rebuilds, integrity checks
How to set it up
When adding a monitor, select Heartbeat as the check type. SiteBrief generates a unique heartbeat URL for that monitor. Add a ping to that URL at the end of your task.
| Setting | Description |
|---|---|
| Heartbeat interval | How often your task is expected to run (e.g. 24 hours for a daily backup) |
| Grace period | Extra time allowed before an alert is sent — useful if tasks sometimes run a bit late |
The heartbeat URL accepts any HTTP method (GET or POST). No authentication is needed — the unique URL is the secret.
Integration examples
Linux cron (bash)
# Run backup, then ping SiteBrief
0 2 * * * /usr/local/bin/backup.sh && curl -fsS https://app.sitebrief.net/hb/YOUR-UUID > /dev/nullPHP / Laravel scheduler
$schedule->command('backup:run')
->daily()
->thenPing('https://app.sitebrief.net/hb/YOUR-UUID');Python
import requests
def run_backup():
# ... your backup logic ...
pass
if __name__ == '__main__':
run_backup()
requests.get('https://app.sitebrief.net/hb/YOUR-UUID')Node.js
const https = require('https');
async function runTask() {
// ... your task logic ...
await fetch('https://app.sitebrief.net/hb/YOUR-UUID');
}Grace period
The grace period is extra time added on top of the expected interval before an alert fires. For example, if your cron runs every 24 hours with a 1-hour grace period, SiteBrief will alert you only if no heartbeat arrives within 25 hours.
Set a grace period that matches how variable your task's runtime is:
| Task type | Recommended grace period |
|---|---|
| Fast script (seconds) | 5–15 minutes |
| Medium task (minutes) | 30–60 minutes |
| Heavy process (backups, ETL) | 2–4 hours |
| Weekly task | 12 hours |