Cron Job Monitoring With Missed-Run Alerts

A single curl at the end of your job catches silent failures, missed windows, and duration anomalies before they become incidents.

Monitor Your Scheduled Tasks

Get alerted when jobs fail, miss their window, or run abnormally long. No agents to install -- just add a curl call.

metrictower.com/monitoring/cron-jobs
+ New Monitor
Name Schedule Last Run Duration Next Expected Status
DB Backup (prod) 0 2 * * * 6 hrs ago 4m 22s Tomorrow 02:00 OK
Invoice Generator */15 * * * * 3 min ago 18m 45s SLOW In 12 min Anomaly
SSL Cert Renewal 0 4 * * 1 3 days ago 12s Monday 04:00 OK
Report Mailer 0 8 * * 1-5 Missed -- Overdue 2h 15m Missed
Cache Warmer Every 300s 1 min ago 8s In 4 min OK
Alerting

Four Alert Types, Complete Coverage

Every failure mode is covered. Alerts integrate with your existing notification channels -- Slack, PagerDuty, OpsGenie, email, webhooks, and more.

  • Critical
    JOB_FAILED

    Explicit failure or non-zero exit code reported by the job

  • Critical
    JOB_MISSED

    Expected ping window passed with no ping received

  • High
    JOB_DURATION_ANOMALY

    Duration exceeds the learned EWMA threshold or max cap

  • Low
    JOB_RECOVERED

    Previously failing job succeeded; auto-resolves incidents

Cron Job Missed

2 minutes ago

Report Mailer missed its expected run at 08:00 UTC.

Schedule: 0 8 * * 1-5 | Grace: 5 min | Last success: Yesterday 08:00

Know When Your Jobs Break

Schedule-aware monitoring that understands cron expressions, learns normal durations, and catches silent failures.

Schedule-Aware Monitoring

Supports full cron expressions and simple period intervals. Metric Tower calculates the next expected run and alerts you when the window passes with no ping.

Duration Anomaly Detection

EWMA (Exponentially Weighted Moving Average) learns your job's normal duration over 10+ runs. When a run exceeds the learned threshold, you get an alert before it becomes a problem.

Integration Snippets

Copy-paste setup for cURL, Python, PHP, Node.js, Kubernetes CronJobs, and GitHub Actions. Each monitor includes ready-to-use integration code.

How It Works

Three endpoints, zero agents. Monitor any scheduled task in under a minute.

1

Create a Monitor

Set a name, schedule (cron expression or period), and optional grace period. Metric Tower generates a unique ping URL for your job.

2

Add Ping Calls

Add /ping/TOKEN/start before your job and /ping/TOKEN after. Failures send /ping/TOKEN/fail.

3

Get Alerted

Metric Tower monitors for missed runs, explicit failures, non-zero exit codes, and duration anomalies. Alerts fire through your configured channels.

metrictower.com/monitoring/cron-jobs/setup
cURL Python PHP Laravel K8s GitHub Actions
# Signal job start
curl -fsS --retry 3 https://metrictower.com/ping/abc123/start
# Run your job
./backup.sh
# Signal success (or send exit code)
curl -fsS --retry 3 https://metrictower.com/ping/abc123/$?

Deep Visibility Into Every Job Run

Missed Run Detection

Metric Tower evaluates all scheduled monitors every minute. When a cron-expression or period-scheduled job passes its expected window with no ping, a critical alert fires immediately. No more silent failures going unnoticed for hours.

Exit Code Tracking

Send exit codes via the ping URL and Metric Tower records them with each run. Non-zero exit codes trigger failure alerts. The run history table shows exit codes alongside duration and timestamps for fast debugging.

Duration Charts

The detail page for each monitor shows a duration chart with 24h, 7d, and 30d period selectors. Spot gradual performance degradation before it becomes an outage. EWMA mean and deviation are displayed alongside raw duration data.

Auto-Resolve on Recovery

When a previously failing or missed job succeeds, Metric Tower fires a recovery alert and automatically resolves open PagerDuty and OpsGenie incidents. Your on-call team only gets woken up when there is an actual problem.

Cron Job Monitoring That Learns

Monitor scheduled tasks with schedule-aware missed detection, duration anomaly learning, and zero-agent setup. Add a curl call to your job and Metric Tower handles the rest.