https://github.com/opentable/hapi-service-status
service-status endpoint for hapi.js
https://github.com/opentable/hapi-service-status
Last synced: over 1 year ago
JSON representation
service-status endpoint for hapi.js
- Host: GitHub
- URL: https://github.com/opentable/hapi-service-status
- Owner: opentable
- License: mit
- Created: 2014-07-09T08:55:33.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2015-07-06T09:55:26.000Z (about 11 years ago)
- Last Synced: 2024-04-14T09:05:29.620Z (about 2 years ago)
- Language: JavaScript
- Size: 249 KB
- Stars: 2
- Watchers: 6
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#Hapi service-status
[](https://travis-ci.org/opentable/hapi-service-status) [](http://badge.fury.io/js/hapi-service-status) 
Shared code for the `service-status` endpoint.
Performs a check by injecting a request to a specified endpoint (using server.inject).
Installation:
```npm install --save hapi-service-status```
Usage:
```
var server = hapi.createServer();
server.pack.register(
{
plugin: require("hapi-service-status"),
options: {
failureStatusCode: 500, // status code of the service-status response when monitor fails, default value is 200
monitors: [
{
monitorname: 'mymonitor1',
path: '/my/route/to/test/123',
headers: {},
timeout: 500 // if the request takes longer than this time (ms) then report as 'Failed'
},
{
monitorname: 'mymonitor2',
path: '/my/other/route/321',
headers: {},
compare: function(body){ // this function should return true or false based on body content
return body.foo == "bar"; // returning false will result in a 'Failed' status
}
},
{
monitorname: 'mymonitor3',
path: '/my/other/other/route',
headers: {},
timeout: 500,
selfTest: false // exclude this monitor from the selfTest() function
}
// ...
]
default: 1
}
},
function (err){
if(err){
throw err;
}
}
);
```
Routes:
- `/service-status` // runs the default monitor
- `/service-status/{monitorname}` // runs the named monitor
- `/service-status/all` // runs all monitors, use with caution
SelfTest:
Provides a method to run all the monitors and assert they are successful. Useful for a startup-self test.
```
server.start(function(){
server.plugins['hapi-service-status'].selfTest(function(err){
if(err){
throw err;
}
});
});
```
Future plans:
- Maybe Ok/Warn/Fail threshold?
- Optionally fail on a 404