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 the rules you want. We'll give you a tracking URL.

  2. Make an http request to your tracking URL.

  3. If we don't hear from you at the right times you'll get an email or text message.
Ping Cronitor when your job runs successfully:
# m h dom mon dow   command
0 */1 * * * /path/to/mysqlbackup.sh && curl https://cronitor.link/cb88ffb733f6 -m 10
Ping before and after your job to track timing:
# m h dom mon dow   command
0 */1 * * * curl https://cronitor.link/cb88ffb733f6/b -m 10 ; /path/to/mysqlbackup.sh && 
curl https://cronitor.link/cb88ffb733f6/e -m 10
Ping Cronitor when your script runs successfully:
#!/usr/bin/env bash
/path/to/do_things.sh
curl https://cronitor.link/cb88ffb733f6 -m 10 || true
Ping at the start and end of your script to track timing:
#!/usr/bin/env bash
curl https://cronitor.link/cb88ffb733f6/b -m 10 || true
/path/to/do_things.sh
curl https://cronitor.link/cb88ffb733f6/e -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 when your application runs successfully:
# Application Logic Here

from urllib2 import urlopen
try:
  urlopen('https://cronitor.link/cb88ffb733f6', timeout=10)
except Exception:
    pass
Ping at the start and end of your application to track timing:
from urllib2 import urlopen
try:
  urlopen('https://cronitor.link/cb88ffb733f6/b', timeout=10)
except Exception:
    pass

# Application Logic Here
try:
  urlopen('https://cronitor.link/cb88ffb733f6/e', timeout=10)
except Exception:
    pass
Ping Cronitor when your application runs successfully:
# Application Logic Here

require 'net/http'
begin
    Net::HTTP.get(URI.parse('https://cronitor.link/cb88ffb733f6'))
rescue Exception => e
end
Ping at the start and end of your application to track timing:
require 'net/http'
begin
    Net::HTTP.get(URI.parse('https://cronitor.link/cb88ffb733f6/b'))
rescue Exception => e
end

# Application Logic Here
begin
    Net::HTTP.get(URI.parse('https://cronitor.link/cb88ffb733f6/e'))
rescue Exception => e
end
Ping Cronitor when your application runs successfully:
# Application Logic Here

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://cronitor.link/cb88ffb733f6',
  CURLOPT_TIMEOUT => 10,
));
curl_exec($curl);
Ping at the start and end of your application to track timing:
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://cronitor.link/cb88ffb733f6/b',
  CURLOPT_TIMEOUT => 10,
));
curl_exec($curl);

# Application Logic Here

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://cronitor.link/cb88ffb733f6/e',
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 link",
      "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 Alerting API

Surveillance Team

$24.99/mo

100 Monitors

Premium Features:
SMS Notifications
Webhook Notifications
Multiple Alert Recipients
On Demand Alerting API
Integration API

NSA (Monitor Everything)

$49.99/mo

1000 Monitors

Premium Features:
SMS Notifications
Webhook Notifications
Multiple Alert Recipients
On Demand Alerting API
Integration API
PagerDuty Integration

One is always FREE! OR learn more about these features