Heartbeat Monitoring

Cron Job Monitoring — know when your scheduled jobs silently fail.

A dead man's switch for your backups, ETL pipelines, and background workers: every run pings UptimeEye, and the moment a ping is missing, you get alerted. No ping, no excuses.

No credit card required • Commercial use allowed • One curl command to set up

How It Works

Create a monitor, get a unique beat URL, and add one line to your job. UptimeEye expects a ping on every scheduled run — and alerts you the moment one is missing.

01

Add one line to your crontab

The && makes it a dead man's switch: the ping only fires when the backup succeeds. If the script fails — or never runs — no ping arrives and UptimeEye alerts you.

# Ping UptimeEye only if the backup succeeds (dead man's switch)
0 3 * * * /backup.sh && curl -fsS https://api.uptimeeye.com/v1/beat/YOUR_TASK_ID
02

Track runtime with start / success / fail

For longer jobs, signal the start and the result separately. UptimeEye measures the runtime between /start and /success, and a /fail ping triggers an alert immediately.

#!/bin/bash
# Signal the start — UptimeEye begins measuring runtime
curl -fsS https://api.uptimeeye.com/v1/beat/YOUR_TASK_ID/start

if /usr/local/bin/nightly-etl.sh; then
  # Success: stops the timer and records the runtime
  curl -fsS https://api.uptimeeye.com/v1/beat/YOUR_TASK_ID/success
else
  # Failure: triggers an alert immediately
  curl -fsS -X POST https://api.uptimeeye.com/v1/beat/YOUR_TASK_ID/fail
fi
03

Works anywhere — GitHub Actions, Kubernetes, anything with curl

The beat endpoints accept HEAD, GET, and POST requests with no authentication headers, so any scheduler that can make an HTTP request can report in — CI pipelines, Kubernetes CronJobs, serverless functions, or a Raspberry Pi in your closet.

name: nightly-job
on:
  schedule:
    - cron: "0 3 * * *"

jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run the job
        run: ./scripts/nightly-job.sh
      - name: Report success to UptimeEye
        if: success()
        run: curl -fsS https://api.uptimeeye.com/v1/beat/${{ secrets.UPTIMEEYE_TASK_ID }}
      - name: Report failure to UptimeEye
        if: failure()
        run: curl -fsS -X POST https://api.uptimeeye.com/v1/beat/${{ secrets.UPTIMEEYE_TASK_ID }}/fail

Everything Your Background Jobs Need

Real Cron Expressions with Timezones

Define schedules as actual cron expressions (e.g. 0 3 * * *) bound to a timezone, or as simple intervals. UptimeEye knows exactly when each run is due — daylight saving time included.

Configurable Grace Periods

Jobs sometimes run a little late. Set a grace period from 0 to 1440 minutes per monitor so you only get paged when something is genuinely wrong — not when a backup takes five extra minutes.

Runtime Tracking

Ping /start when the job begins and /success when it finishes. UptimeEye measures execution time on every run, so you catch jobs that are slowly degrading before they start failing.

Alerts on Every Channel

When a job misses its schedule or reports a failure, alerts go out via Slack, Discord, Telegram, MS Teams, PagerDuty, generic webhooks, or email — and again when it recovers.

Status Page Integration

Publish cron monitors on your public status page alongside uptime monitors, including recent events — so your team and your customers see the same picture.

Dead Man's Switch by Design

Chain the ping to your command with && so it only fires on success. No ping means no successful run — and UptimeEye marks the task as down and alerts you.

One Tool Instead of Two

Typical uptime tools

Treat cron monitoring as an afterthought — a basic heartbeat bolted onto HTTP checks, often without real cron expressions, timezones, or runtime tracking.

Dedicated cron tools

Do heartbeats well, but don't monitor your websites and APIs — so you end up paying for and maintaining a second monitoring tool anyway.

UptimeEye

Bundles both in one plan: full-featured cron monitoring with cron expressions, timezones, and runtime tracking — plus uptime monitoring with 30s checks, shared alert channels, and shared status pages.

Free plan: 3 cron monitors + 5 uptime monitors + 1 status page. Pro: €29/month for 50 cron monitors + 50 uptime monitors with 30-second checks.

Frequently Asked Questions

What is cron job monitoring?

Cron job monitoring (also called heartbeat or dead man's switch monitoring) flips traditional monitoring around: instead of UptimeEye checking your service, your job pings UptimeEye every time it runs successfully. If the expected ping doesn't arrive on schedule, UptimeEye marks the job as down and alerts you. This catches failures that normal uptime checks can't see — like a backup script that simply never ran.

What's the difference between simple and cron-based schedules?

UptimeEye supports two schedule types. Simple schedules expect a heartbeat at a fixed interval (e.g. every 15 minutes). Cron schedules use a real cron expression with a timezone (e.g. '0 3 * * *' in Europe/Berlin), so UptimeEye knows exactly when each run is due — including correct handling of daylight saving time.

What happens when a job misses its schedule?

Each monitor has a configurable grace period from 0 to 1440 minutes. If no heartbeat arrives within the expected time plus the grace period, the task is marked as down and alerts go out over your configured channels: Slack, Discord, Telegram, MS Teams, PagerDuty, generic webhooks, or email. You're alerted again when the job recovers.

Can I track how long my jobs take to run?

Yes. Ping the /start endpoint when your job begins and the /success endpoint when it finishes. UptimeEye measures the runtime between the two, so you can spot jobs that are getting slower over time — not just jobs that fail outright. You can also ping /fail to report an explicit failure immediately.

How many cron monitors do I get for free?

The free plan includes 3 cron monitors, 5 uptime monitors, and 1 status page — commercial use allowed, no credit card required. The Pro plan at €29/month includes 50 cron monitors and 50 uptime monitors with 30-second uptime checks.

Stop Hoping Your Cron Jobs Ran

Set up your first cron monitor in under two minutes: create a task, copy the beat URL, add one curl command. The free plan includes 3 cron monitors — no credit card required.

Free plan with commercial use allowed • Pro at €29/month for 50 cron + 50 uptime monitors