Service Status plugin for Hapi
Defines /service-status
endpoint:
GET /service-status
Host: yourhost.com
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
cache-control: no-cache
{
status: "ok",
version: "1.0.164",
sha: "2c199e4e45ed09a84356412243e676998986b0e1",
env: "prod",
monitors: [
{
status: "healthy",
name: "your custom monitor"
}
]
}
$ npm i ot-hapi-service-status --save
var server = new (require('hapi').Server)();
server.connection({ port: 3000 });
server.register([
{
register: require('ot-hapi-service-status'),
options: {
metadata: {
version: require('./package.json').version,
env: process.env.NODE_ENV || 'local'
},
monitors: [
function(req, reply, done) {
done(null, {
status: 'healthy', // status of 'healty' indicates monitor is healthy, any other value indicates monitor failure and will cause the top-level status to change to 'faulting'
name: 'monitor 1', // optional name, useful for differentiating between monitors
myField1: true, // arbitraty fields, usefull for surfacing
myField2: false // additional diagnostic information
});
},
function(req, reply, done) {
done(null, {
status: 'cannot connect to internal service',
name: 'monitor 2',
err: {}
});
}
]
}
}
], function(err) {
if (err) {
console.error('Failed to load plugin:', err);
}
server.start();
});
- metadata - (optional) a set of additional fields to inject into each service-status response
- monitors - a list of monitoring functions, with the following signature
function(req, reply, done)
- req - Hapi request object
- reply - Hapi reply object
- done - callback, with the following signature
function(err, data)
- v1.0.4 (2016-04-07)
- updated dependencies
- v1.0.3 (2015-11-20)
- updated dependencies
- v1.0.2 (2015-07-13)
- updated dependencies
- v1.0.1 (2015-06-06)
- housekeeping
- v1.0.0 (2015-05-13)
- housekeeping
- v0.1.4 (2015-05-12)
- improved compatibility with ot-hapi-request-metrics package
- v0.1.3 (2015-05-12)
- updated dependencies
- v0.1.2 (2015-05-06)
- updated dependencies
- v0.1.1 (2015-04-27)
- updated dependencies
- v0.1.0 (2015-03-31)
- initial release