Hi Eric (on behalf of ariedebok - who is banned for no reason

-> plz someone unban him)
Thanks for your feedback! I can see that you gave this some serious thought, and I will definitely implement some of your suggestions. Adding a notification system is my next development goal.
We use the heartbeat system for our in house monitoring at Direct Debit and SnapBill. We created heartbeat.sh, because the system works well for us, and we want to make it available as a service to the public. For now it is a "beta" version to see the reaction of the public, but the idea is to make it permanent and to grow it according to the feedback we receive.
We host the heartbeat.sh through AWS, we don't have a self-hosted version available currently. Redundancy-wise we have 2 app servers. The heartbeats themselves are stored in a Redis instance with redundancy spread over 3 nodes. We store user details in a Postgres DB on Amazon's RDS service. We make daily snapshots of the DB.
As for the information we keep: we store heartbeat details (timestamp of the last beat, configured timeouts, name, subdomain) and login details for the users that registered an account. The user passwords are hashed in our db, and every password is hashed with a randomly generated salt (as opposed to using the same salt for every password). Our hashing algorithm is cryptographically secure.
I've started to write some how-to's on our documentation page. For most cases, it is good enough to just send a heartbeat at the end of every script run, making the timeout a bit longer than the frequency of the script.
The approach of sending start and end heartbeats is good for mission critical tasks, where you want to be notified early. I would keep one heartbeat, and just swop out the timeouts. If you expect a backup to take 30 minutes, send a heartbeat with a 30 minute timeout at the start. Once the backup is done, send a heartbeat with the same name, but a 24 hour timeout.
You can also send a heartbeat with a 0 second timeout in case something went wrong. And then delete the heartbeat once you fixed the issue.
Our alert mechanism is still under development. Fow now, polling the API is best. If you know your way around the shell, I would recommend polling https://{subdomain}.
heartbeat.sh/heartbeats/text. As that would give a response that can easily be parsed with awk. If you prefer to work with JSON, you could just use /heartbeats/json instead.
For our in house monitoring, we hooked up a robot(yes, a traffic light) to a raspberry pi. The pi polls our API, and changes the robot's colour according to the status.
Thanks again for your feedback!
Arie, heartbeat.sh developer