TL;DR: PINGJOE passively monitors your services and regular tasks. It does not probe your servers but rather waits for your program to PING JOE. You will receive an e-mail whenever your app misses the ping.
Q: I have a reliable backup tool with error reporting already. Why do I need PINGJOE?
A: PINGJOE is the best solution to cover scenarios like your backup tool failing or not running at all, whole range of network issues, backup server down, cron daemon issues, and more. PINGJOE awaits an OK result from your program. If it does not arrive, and there can be thousands of reasons for that, we will notify you. This solution is more robust and reliable than trying to identify separate problems. And last but not least the service is located on an independent network shielded from any local issues you might suffer from.
A few practical examples of how to PINGJOE
Shell scriptrsync --archive production:/data/ /prod-backup/ && \ curl https://user:123@api.pingjoe.com/nas-data/1d6h
5 0 * * * /cloud/backup && /usr/bin/curl https://user:123@api.pingjoe.com/cloud/1d90m
wget -q -O- https://user:123@api.pingjoe.com/some-job/1M
file_get_contents("https://user:123@api.pingjoe.com/orders-upload/1h10m");
Tutorial
- Create a new account or log in if you have one already.
- Set up your API access user name and password.
- Create a new named "spotter" that will wait for your next ping. Creation is the same as pinging - just ping a nonexistent spotter. To create a spotter named "test" that will expect the next ping in 1 minute, visit https://api.pingjoe.com/test/1m.
Congratulations! You just created your first PINGJOE spotter!
We will notify you shortly if the page https://api.pingjoe.com/test/1m is not requested in the next minute.
Feel free to change the "test" name or the last time parameter "1m". The time parameter informs the spotter with each ping when to expect the next ping. The time syntax is simple: a number followed by "m" (minutes), "h" (hours), "d" (days), "M" (months). Example: "1M20h". See here for more.
The ping requires API user authentication so don't forget to specify valid credentials in the URL if you use non-interactive tools like wget, curl, links, lynx, or others. Example:
curl https://user:password@api.pingjoe.com/test/1d10h20m