Heartbeat monitoring

Know when a job
quietly stops running.

Backups, imports, invoice runs and queue workers fail without a sound. Give each job a private URL to call when it finishes. If the call doesn't arrive on time, we alert you.

One line to add

Call the URL with curl, wget or any HTTP client at the end of your job. GET, POST and HEAD all count.

Your schedule, your grace

Tell us how often the job runs, from every minute to once a week, and how late it may be before it counts as missed.

Alerts and recovery

A missed run opens an incident and alerts you by Email, Slack, Discord, Telegram or webhook. The next ping closes it and tells you it's back.

Set up in a minute.

  1. 1

    Add a heartbeat

    Name it, and say how often the job runs and how much delay is fine.

  2. 2

    Copy its private URL

    Every heartbeat gets its own secret address. It never appears on status pages or reports.

  3. 3

    Call it when the job finishes

    Put it after your command, so only a successful run checks in.

# crontab -e

0 3 * * * /srv/backup.sh && curl -fsS --retry 3 https://keepbeacon.com/api/heartbeat/your-private-token

# Laravel scheduler

$schedule->command('backup:run')->daily()
  ->thenPing('https://keepbeacon.com/api/heartbeat/…');

Heartbeats are on every plan and count like any other monitor.

Stop finding out from your customers.

Add Your First Heartbeat