autohost-canary
Adds an end-point for tracking in-depth status of a service. Services determine what gets reported as status via API.
Installation & Setup
npm install autohost-canary -S
var autohost = ;var host;var hyped = ;var fount = ;var postal = ;// create the channel used to communicate between// various components and the status trackervar channel = postal; fount;host = hyped; // by publishing a status to a topic, the status tracker will update its state// where topic is the key and the message will be the value. This is a very simple// way to get a quick glimpse into what's happening. See status messages for more// details on how to control status. // this example demonstrates tracking rabbit connectivity:rabbit; rabbit; rabbit;
HTTP API
The only thing you can do is get the status:
GET /api/ah/status
If you're using hyped
then you can access the same endpoint via status:self
. The names and routes were chosen to make the chance of collision extremely low.
The result will be a JSON object with your keys/values and a few bonus items:
// your stuff here ... "memory": a hash containing memory usage details "uptime": "a human readable duration" "version": "a version specifier from your package.json OR nonstop-info"
Status Messages
You get a little more control on what status is reported based on how you format your message.
Default
You can publish a message with default
to tell canary that if the key is removed or reset to still display the key with the default value.
channel;
Reset
Publishing this message will cause the key to revert to undefined or a previously provided default value.
channel;
Value
Updates the current status for the topic to the value provided.
channel;
Time to live (milliseconds)
Some values are only good for a period of time or don't have a compensating event to tell you when the value has changed. To address this, you can put a ttl
property on the message body which will cause the value to be removed from status or revert to a previously assigned default.
channel