Expose an health-check API to *-worker or a health-check route for already existing API
Kubernetes (Google Container Engine, Clever-cloud and so on...) requires every processes to expose an HTTP API so it can ensure the service is up.
Instead of duplicating code everywhere in the code, the
health-check-library simply expose a route in a language-agnostic and unified way.
health-check-library MUST expose a GET /_health route that yield a 200 HTTP status code.
health-check-library follows semver so any non-backward-compatible change will be a major release.
- Language agnostic, if it's not supported in your current language simply send a PR that follows the above conventions
- Framework agnostic, if the framework you use is not supported simply send a PR that follows the above conventions
Use this when your NodeJS process (a.k.a worker) does not currently expose an HTTP API.
// Usage require('health-check-library')(port [, callback]);
health-check-library was not able to bind to the specified port it will throw an error and make the worker crash (that's a good thing).
Use this when your NodeJS process already exposes an HTTP API with HAPI. Please note that HAPI should always* be used in NodeJS, don't forget to document your API with swaggerize-hapi.
health-check-library was not able to register itself to the HAPI server it will throw an error and will make the process crash (that's a good thing).
var healthy = require('health-check-library').register(server); // by default GET /health will yield a 500 error healthy(true); // now GET /health yield an 200 success
- always = 99.9% of the time