Monitoring for your nightly backups, weekly reports, cron jobs and background tasks.

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.

healthchecks.io creates unique Ping URLs like this one:

# m h dom mon dow command
  8 6 *   *   *   /home/user/backup.sh && curl -fsS --retry 3 https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188 > /dev/null
# using curl:
# (make sure it is installed on your system!)
curl --retry 3 https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188
# using wget:
wget https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188 -O /dev/null
# urllib with python 3.x:
import urllib.request
urllib.request.urlopen("https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188")

# urllib with python 2.x:
import urllib
urllib.urlopen("https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188")
# using requests:
import requests
requests.get("https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188")
require 'net/http'
require 'uri'

Net::HTTP.get(URI.parse('https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188'))
var https = require('https');
https.get("https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188");
file_get_contents('https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188');
// the server returns appropriate CORS headers so cross-domain AJAX requests should work:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188', true);
xhr.send(null);
# inside a PowerShell script:
Invoke-RestMethod https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188
# Without an underlying script, passing the command to PowerShell directly:
powershell.exe -command &{Invoke-RestMethod https://hchk.io/b41753da-122f-4a00-8a3e-8955c6e5e188}

As an alternative to HTTP and HTTPS requests, you can "ping" this check by sending an email message to b41753da-122f-4a00-8a3e-8955c6e5e188@hchk.io

E-mail Address to Receive Alerts:

@

A quick peek of what's inside:

My Checks page

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

Give names to your checks to easily recognize them later. Adjust Period and Grace time to match the periodicity and duration of your tasks.

Period/Grace Time dialog
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

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.

Channels page

You can set up additional ways to get notified:

Email icon Good old email messages.
Email icon SMS text messages.
Webhook icon HTTP webhooks.
Slack icon Notifications in Slack channel.
Pushover icon Instant push notifications with Pushover.
Pushbullet icon Instant push notifications with Pushbullet.
Telegram icon Notifications to a Telegram group or user.
PagerDuty icon Open and resolve incidents in PagerDuty.
PagerTree icon Open and resolve incidents in PagerTree.
HipChat icon Notifications in HipChat channel.
VictorOps icon Open and resolve incidents in VictorOps.
Discord icon Notifications in Discord channel.
OpsGenie icon Open and resolve incidents in OpsGenie.