Detect Silent Failures Before Your Customers Do Monitor 20 Cron Jobs For Free. Affordable Plans if You Need More.

Make HTTP requests to the Ping URL at regular intervals. When the URL is not pinged on time, Healthchecks.io will send you an alert. You can monitor any service that can make HTTP requests or send emails.

For each of your cron jobs, we create an unique Ping URL similar to this one:

https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da
# m h dom mon dow command
  8 6 *   *   *   /home/user/backup.sh && curl -fsS --retry 3 https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da > /dev/null
# using curl:
# (make sure it is installed on your system!)
curl --retry 3 https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da
# using wget:
wget https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da -O /dev/null
# urllib with python 3.x:
import urllib.request
urllib.request.urlopen("https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da")

# urllib with python 2.x:
import urllib
urllib.urlopen("https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da")
# using requests:
import requests
requests.get("https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da")
require 'net/http'
require 'uri'

Net::HTTP.get(URI.parse('https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da'))
var https = require('https');
https.get("https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da");
file_get_contents('https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da');
using (var client = new System.Net.WebClient())
{
       client.DownloadString("https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da");
}
// the server returns appropriate CORS headers so cross-domain AJAX requests should work:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da', true);
xhr.send(null);
# inside a PowerShell script:
Invoke-RestMethod https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da
# Without an underlying script, passing the command to PowerShell directly:
powershell.exe -command &{Invoke-RestMethod https://hc-ping.com/fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da}

As an alternative to HTTP and HTTPS requests, you can "ping" this check by sending an email message to fad3cc88-84e3-43f0-ba1a-8fbd7e38d5da@hc-ping.com

Healthchecks.io monitors the heartbeat messages sent by your cron jobs, services and APIs. Get immediate alerts you when they don't arrive on schedule.

Sign Up – It's Free

A quick peek of what's inside:

My Checks page

Live-updating Dashboard

A list of your checks, one for each Cron job, daemon or periodically running task you want to monitor.

Give names and assign tags to your checks to easily recognize them later.

Tap on the integration icons to toggle them on and off.

Adjust Period and Grace time to match the periodicity and duration of your tasks.

Period/Grace Time dialog

Simple Configuration

Each check has configurable Period and Grace Time parameters. Depending on these parameters and time since the last ping, the check is in one of the following states:
New. A check that has been created, but has not received any pings yet.
Up. Time since last ping has not exceeded Period.
Late. Time since last ping has exceeded Period, but has not yet exceeded Period + Grace.
Down. Time since last ping has exceeded Period + Grace. When check goes from "Late" to "Down", Healthchecks.io sends you a notification.
Cron dialog

Cron Expression Support

Alternatively, you can define the expected ping dates and times using a cron expression. See Cron Syntax Cheatsheet for the supported syntax features.

Grace Time specifies how "late" a ping can be before you will be alerted. Set it to be a little above the expected duration of your cron job.

Details Page

Details and Event Log

You can add a longer, free-form description to each check. Leave notes and pointers for yourself and for your team.

You can also see the log of received pings and sent "Down" notifications.

Details Page

Public Status Badges

Healthchecks.io provides status badges for each of the tags you have used. Additionally, the "Healthchecks.io" badge shows the overall status of all checks in your account.

The badges have public, but hard-to-guess URLs. You can use them in your READMEs, dashboards or status pages.

Integrations
Set up additional ways to get notified:

Email icon

Email
 

SMS icon

SMS
 

Webhook icon

Webhooks
 

Slack icon

Slack
Chat

Telegram icon

Telegram
Chat

Pushover icon

Pushover
Push Notifications

Pushbullet icon

Pushbullet
Push Notifications

PagerDuty icon

PagerDuty
Incident Management

HipChat icon

HipChat
Chat

VictorOps icon

VictorOps
Incident Management

Discord icon

Discord
Chat

OpsGenie icon

OpsGenie
Incident Management

PagerTree icon

PagerTree
Incident Management

Trello icon

Trello
Project Management

What Can I Monitor With Healthchecks.io?

Cron Jobs

Healthchecks.io monitoring is a great fit for cron jobs and cron-like systems (systemd timers, Jenkins build jobs, Windows Scheduled Tasks, wp-cron, uwsgi cron-like interface, Heroku Scheduler, ...). A failed cron job often has no immediate visible consequences, and can go unnoticed for a long time.

Specific examples:

  • Filesystem backups
  • Database backups
  • Daily, weekly, monthly report emails
  • SSL renewals
  • Business data import and sync
  • Antivirus scans
  • Dynamic DNS updates

Processes, Services, Servers

Healthchecks.io monitoring can be used for lightweight server monitoring: ensuring a particular system service, or the server as a whole is alive and healthy. Write a shell script that checks for a specific condition, and pings Healthchecks.io if successful. Run the shell script regularly.

Specific examples:

  • Check a specific docker container is running
  • Check a specific application process is running
  • Check database replication lag
  • Check system resources: free disk, free RAM, ...
  • Send simple, unconditional "I'm alive" messages from your server (or your NAS, router, Raspberry Pi, ...)