Monitor cron jobs, daemons and almost anything else

Realtime alerts when your jobs:
  • Don't run on time
  • ·
  • Run too long
  • ·
  • Finish too quickly


  1. Create a monitor with rules like not run in 10 minutes. We'll give you a unique URL to ping.

  2. Like the examples here, make an http request to your Ping URL when your job runs.

  3. If your job doesn't ping us when expected, we'll send you an alert.
Ping Cronitor before and after your job using Curl:
# m h dom mon dow   command
0 */1 * * * curl https://cronitor.link/d3x0/run -m 10 ;  /path/to/mysqlbackup.sh && 
curl https://cronitor.link/d3x0/complete -m 10
On paid accounts, report failures and trigger on-demand alerts:
# m h dom mon dow   command
0 */1 * * * /path/to/mysqlbackup.sh || curl https://cronitor.link/d3x0/failure -m 10
Ping Cronitor before and after your job:
#!/usr/bin/env bash
curl https://cronitor.link/d3x0/run -m 10 || true
/path/to/do_things.sh
curl https://cronitor.link/d3x0/complete -m 10 || true
Using a bash wrapper script:

When adding Cronitor tracking to a bash script or directly to Crontab, you may want to wrap the ping requests in a helper script. Another Cronitor user has shared his wrapper script on Github: Cronitor ping wrapper by Ethan Erchinger

Ping Cronitor before and after your job using Requests:
import requests
requests.get(
   'https://cronitor.link/d3x0/run',
   timeout=10
)

# Application Code Here

requests.get(
   'https://cronitor.link/d3x0/complete',
   timeout=10
)
Ping Cronitor before and after your job using OpenURI:
require 'open-uri'
open(
   'https://cronitor.link/d3x0/run',
   :read_timeout=>10
)

# Application Code Here

open(
   'https://cronitor.link/d3x0/complete',
   :read_timeout=>10
)
Ping Cronitor before and after your job using file_get_contents:
file_get_contents('https://cronitor.link/d3x0/run');
# Application Code Here
file_get_contents('https://cronitor.link/d3x0/complete');
The same integration using curl:
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://cronitor.link/d3x0/run',
  CURLOPT_TIMEOUT => 10,
));
curl_exec($curl);

# Application Code Here

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cronitor.link/d3x0/complete',
CURLOPT_TIMEOUT => 10,
));
curl_exec($curl);

On paid plans, Cronitor alerts can be delivered via webhook request to your server. Configuring webhook alerts is simple:

  1. When you create your monitor, provide a URL on your server that will receive webhook requests.

  2. When an alert is triggered, Cronitor will POST to this endpoint.

  3. The body of the POST request will be a JSON object:

    {
      "id": "The alphanumeric code in your tracking URL",
      "monitor": "Name of the monitor the alert is for",
      "description": "Why the alert was triggered"
      "rule": "Name of the rule that was violated"
    }
    


Night Watchman

$9.99/mo

10 Monitors

Premium Features:
SMS Notifications
Webhook Notifications
Multiple Alert Recipients
On-Demand Alert Endpoint

Surveillance Team

$24.99/mo

100 Monitors

Premium Features:
SMS Notifications
Webhook Notifications
Multiple Alert Recipients
On-Demand Alert Endpoint
Automation API

NSA (Monitor Everything)

$49.99/mo

1000 Monitors

Premium Features:
SMS Notifications
Webhook Notifications
Multiple Alert Recipients
On-Demand Alert Endpoint
Automation API
PagerDuty Integration

One is always FREE! OR learn more about these features