Monitor cron jobs, daemons, micro-services and almost anything else.

Realtime alerts when your tasks and services:

  • Run Too Long
  • Don't Run on Schedule
  • Fail Unexpectedly
  • Run Too Long
  • Don't Run on Schedule
  • Fail Unexpectedly


(No Credit Card Required)

Cronitor Screenshot

Easy Cron Monitoring

Cronitor is engineered for easy and reliable cron job monitoring. Create your first monitor in minutes and enjoy peace of mind and improved visibility into your jobs, tasks and services—no coding required!

Perfect Visibility

If it can make HTTP requests we can monitor it—no client installs or firewall changes required. Monitor workers, daemons, important events, periodic tasks, scheduled jobs and almost anything else. Get better visibility with realtime alerts and a live dashboard.

Lightning Fast Support

Responsive and reliable email support right when you need it, with premium phone support available on Enterprise plans. Have confidence that your questions will be handled quickly and professionally.

How to use Cronitor:

  1. Create a monitor with rules like "not on schedule 0 * * * 1-5"
  2. Make an http request to your Ping URL when your job runs & completes
  3. If we don't receive the pings on schedule we'll send you an alert
Ping Cronitor after your job completes successfully:
# m h dom mon dow   command
0 1 * * * /path/to/mysqlbackup.sh && 
curl https://cronitor.link/d3x0c1/complete
Report failures and trigger on-demand alerts:
# m h dom mon dow   command
0 1 * * * /path/to/mysqlbackup.sh || curl https://cronitor.link/d3x0c1/fail 
Ping Cronitor before and after your job:
#!/usr/bin/env bash
curl https://cronitor.link/d3x0c1/run -m 10 || true
/path/to/do_things.sh
curl https://cronitor.link/d3x0c1/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/d3x0c1/run',
   timeout=10
)

# Application Code Here

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

# Application Code Here

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

# Application Code Here

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

Used by individuals, startups and Fortune 500 companies

Evertrue, Tape.TV, Sharethrough, SmartThings, Etsy, Monsanto, MyPizza.com, Rubicon, Primary.com

I was finding too many cases where our cron jobs would silently fail - we sometimes would not find out for days that a job was broken. Cronitor gives our team the confidence and peace of mind that if a job is not running, we'll know about it.

Cronitor provides a simple way for us to report the general health of all of our services. The API is extremely simple to use, and integration with PagerDuty has made this a critical component of our monitoring infrastructure.

Cronitor has increased our Operations staff's efficiency and responsiveness immensely. Their modern spin on micro-monitoring represents a best-in-class solution to the age old problem of visibility.

Ethan Erchinger, Director of Operations Chime

Before we used Cronitor, we had an important cron job fail silently for over a month. We use Cronitor so that will never happen again.

Monitoring Made Easy

or See Plans & Pricing