Cron Heartbeats
Monitor scheduled jobs with token-authenticated heartbeat URLs and detect missed runs after an interval plus grace period.
How heartbeat monitors work
A cron monitor expects a ping at a fixed interval. If a ping does not arrive
within the configured interval plus grace period, ErrTap marks the monitor
MISSED and can fire a CRON_MISSED alert.
Creating a monitor
In the dashboard, open Cron → New heartbeat and supply:
| Field | Description |
|---|---|
| Name | Human-readable job name |
| Expected interval | Seconds between successful runs |
| Grace period | Extra seconds allowed before the run is missed |
ErrTap generates a secret token and shows the complete ping URL in the monitor table.
Sending a heartbeat
POST the generated URL only after the job completes successfully:
curl -X POST https://your-host/ingest/heartbeat/<token>The token in the URL authenticates the ping. A DSN authorization header is not used for heartbeats. The Browser, Node, and Laravel SDKs do not export a heartbeat helper, so use your runtime's normal HTTP client.
Missed detection and recovery
ErrTap compares lastPingAt with the monitor's expected interval and grace
period. Once that window closes the monitor becomes MISSED; the next valid
heartbeat changes it back to HEALTHY and resolves its open cron incident.
Configure notification channels and a CRON_MISSED rule under Alerts to notify
the team when a job stops checking in.