Append /fail
to a ping URL and use it to actively signal a failure.
Requesting the /fail
URL will immediately mark the check as "down".
You can use this feature to minimize the delay from your monitored service failing
to you getting a notification.
The below shell script sends sends either a "success" or "failure" ping depending on command's (certbot in this example) exit code:
#!/bin/sh
url=PING_URL
/usr/bin/certbot renew
if [ $? -ne 0 ]; then url=$url/fail; fi
curl --retry 3 $url
Below is a skeleton code example in Python which signals a failure when the work function returns an unexpected value or throws an exception:
import requests
URL = "PING_URL"
def do_work():
# Do your number crunching, backup dumping, newsletter sending work here.
# Return a truthy value on success.
# Return a falsy value or throw an exception on failure.
return True
success = False
try:
success = do_work()
finally:
# On success, requests PING_URL
# On failure, requests PING_URL/fail
requests.get(URL if success else URL + "/fail")