Heartbeat
=========
Heartbeat is a simple way to check a process's vital signs. Use it instead of Monit, Pingdom, Uptime Robot, or any combination thereof.
It's intended to be used in simple applications where full-scale process monitoring is overkill.
# Usage
Making a new Heartbeat is easy. Just open up a terminal and type:
curl http://heartbeat.alexose.com/your-email@example.com/60
This will create a new heartbeat that will alert "your-email@example.com" in 60 seconds. You can postpone this alert by running the same command again, or you can stop it altogether by sending a cancellation:
curl http://heartbeat.alexose.com/your-email@example.com/cancel
Heartbeat handles these nonstandard URLs and does not require them to be encoded in any special way.
# Examples
It's often useful to know whether a machine has lost power or internet connectivity. An easy to monitor this might be to add a Heartbeat to your crontab. From the terminal, type:
(crontab -l ; echo "* * * * * curl http://heartbeat.alexose.com/your-email@example.com/120") | crontab -
This updates the Heartbeat every 60 seconds. If it fails to update, you'll receive an alert after 120 seconds.
# Advanced
Note that each request is tracked by a combination of your IP and User-Agent, so there's no need for unique IDs or tags. If you need multiple heartbeats, simply use a different User-Agent:
curl -A "process one" http://heartbeat.alexose.com/your-email@example.com/60
curl -A "process two" http://heartbeat.alexose.com/your-email@example.com/60
Heartbeat can also alert you if a particular value is out of range:
curl http://heartbeat.alexose.com/your-email@example.com/60/70/60/80 # in range
curl http://heartbeat.alexose.com/your-email@example.com/60/72 # in range
curl http://heartbeat.alexose.com/your-email@example.com/60/57 # out of range
# Installation
If you'd like to run it on your own machine, just npm checkout heartbeat-server.
npm install heartbeat-server
node heartbeat-server app.js [port]
# Security
There is none.
# Redundancy
Nope!
# Rate Limiting
By default, each IP is only allowed to send 20 alerts per day.