Heartbeat Monitoring

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

  1. Create a heartbeat — Give it a name (e.g. "Nightly backup") and set the expected interval.
  2. Get your ping URL — Pulsewise generates a unique URL with a secret token for each heartbeat.
  3. Add the ping to your task — At the end of your cron job or scheduled task, make an HTTP request to the ping URL.
  4. 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

  1. Navigate to the Heartbeat page for your site.
  2. Click Add Heartbeat in the Settings tab.
  3. Enter a descriptive name and select the timeout period.
  4. Copy the ping URL and add it to your cron job or scheduled task.
  5. 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.