health

Resource status monitoring library.

npm install health
3 downloads in the last week
48 downloads in the last month

Health Build Status Dependencies Status Published Version

Avatar

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 },
  { "name": "Temp", "uri": "file:///tmp", "mode": "777", "ttl": 360000 }
]
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
statusCode array An array of acceptable response HTTP status codes http, https Optional [ 200, 409 ]
text 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' ]
mode string 3-digit file/directory mode file Optional 777, 644
npm loves you