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

Your Internal Status Page

Get visibility into your systems like never before. Cronitor's realtime dashboard provides you with an instant overview of the health of your scheduled tasks and services.

Monitor Anything

If your system can speak HTTP we can monitor it. No client installs or firewall changes required. Cronitor is great for scheduled task and micro-service monitoring, and it's also a simple utility for deploy process notifications, webhook alerts, and other event based messages.

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 case will be handled quickly and professionally.

How to use Cronitor:

  1. Create a monitor with rules like not pinged in 10 minutes
  2. Make an http request to your Ping URL when your job completes
  3. If we don't receive the pings on time 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 companies big and small around the world including

Zillow SmartThings MyPizza ShareThrough Monsanto GeneralAssembly

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