Health
Health is a resource status monitoring library.
This is handy when you want to monitor the status of multiple resources using a simple configuration file. For example, if your application requires a web service and a MongoDB database to be available, Health module can monitor those resources and return status ok/fail against each resource along with the response time.
It also supports result caching via ttl attribe of each resource, which is handy when you want to monitor multiple resources at a different interval or to reduce the load on certain resources.
Installation
npm install -g health
Usage
// use default formatter
var health = new (require('health'))(
setup: [ { name: 'google', uri: 'http://google.com' } ]
);
// use built-in formatter (html, text, or xml)
var health = new (require('health'))(
setup: [ { name: 'google', uri: 'http://google.com' } ],
formatter: 'html'
);
// use custom formatter function
var health = new (require('health'))(
setup: [ { name: 'google', uri: 'http://google.com' } ],
formatter: function (results) {
return results.join('|');
}
);
// check resources
health.check(function (err, result) {
});
From command-line:
health -f html -s health.json check
Configuration
Health setup is just a simple JSON:
[
{ "name": "google", "uri", "http://google.com", "statusCodes": [ 200 ] },
{ "name": "gmail", "uri", "https://mail.google.com", "timeout": "1000" },
{ "name": "mongodb", "uri": "mongodb://somehost:27017", "timeout": 200, "ttl": 30000 }
]
Attribute | Type | Description | Protocol | Usage | Default | Example |
---|
uri | string | Resource URI to check | All | Mandatory | | mongodb://somehost:27017 |
name | string | Resource name | All | Optional | | someapp |
ttl | number | Cache time to live in milliseconds | All | Optional | | 30000 |
lenient | boolean | Replace fail or error with warning | All | Optional | false | true, false |
group | string | Resource group name, status is set to warning when there's at least one group member having success/warning status, group members status is set to fail/error only when none of the group members has success/warning status | All | Optional | | databases, apps, datacenter1 |
timeout | number | Request/connect timeout in milliseconds | http, https, mongodb | Optional | | 500 |
statusCodes | array | An array of acceptable response HTTP status codes, any match means status OK | http, https | Optional | | [ 200, '3xx', 409 ] |
texts | array | An array of all texts that must exist in response body, any of them does not exist means status FAIL | http, https | Optional | | [ 'foo', 'bar' ] |