Heartbeat Monitoring
Heartbeat monitoring (also called cron monitoring) works in reverse to uptime monitoring — instead of Pulsewise pinging your server, your server pings Pulsewise. If a ping doesn't arrive within the expected timeframe, Pulsewise alerts you.
Available on: Business and Enterprise plans
How it works
- Create a heartbeat — Give it a name (e.g. "Nightly backup") and set the expected interval.
- Get your ping URL — Pulsewise generates a unique URL with a secret token for each heartbeat.
- Add the ping to your task — At the end of your cron job or scheduled task, make an HTTP request to the ping URL.
- Pulsewise watches — If the expected ping doesn't arrive within the timeout period, Pulsewise marks the heartbeat as missed and sends a notification.
Example
Add a heartbeat ping to the end of a cron job:
# Nightly database backup - pings Pulsewise on success
0 3 * * * /usr/local/bin/backup-db.sh && curl -s https://pulsewise.app/heartbeat/ping/your-token-here
Or in a Laravel scheduled command:
$schedule->command('backup:run')
->daily()
->then(function () {
Http::get('https://pulsewise.app/heartbeat/ping/your-token-here');
});
Timeout periods
The timeout defines how long Pulsewise waits for a ping before considering the heartbeat missed. Choose a timeout that matches your task's schedule with some buffer:
| Task frequency | Recommended timeout |
|---|---|
| Every minute | 5 minutes |
| Every 5 minutes | 15 minutes |
| Every hour | 2 hours |
| Daily | 26 hours |
| Weekly | 8 days |
Heartbeat status
Each heartbeat has one of three statuses:
| Status | Meaning |
|---|---|
| Healthy | A ping was received within the expected timeframe |
| Missed | No ping was received before the timeout expired |
| Pending | Waiting for the first ping to arrive |
Setting up heartbeats
- Navigate to the Heartbeat page for your site.
- Click Add Heartbeat in the Settings tab.
- Enter a descriptive name and select the timeout period.
- Copy the ping URL and add it to your cron job or scheduled task.
- The heartbeat will show as "Pending" until the first ping arrives.
Limits
- Up to 20 heartbeats per site
Ping endpoint
Each heartbeat has a unique ping URL:
GET https://pulsewise.app/heartbeat/ping/{token}
The endpoint accepts any HTTP method (GET, POST, HEAD) and returns a 200 OK response. No authentication is required — the token in the URL serves as the identifier.
Notifications
| Notification | Severity | When |
|---|---|---|
| Heartbeat Missed | Critical | No ping received within the timeout period |
| Heartbeat Recovered | Info | A ping was received after a missed heartbeat |
Snoozing alerts
You can snooze Heartbeat alerts during planned maintenance windows. During the snooze period, the heartbeat timeout is still tracked but notifications are suppressed.