iadvize / health-check-library

Expose an health-check API to *-worker or a health-check route for already existing API

Home Page:http://bit.ly/1LJEDcE

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

health-check-library CircleCI Deps Version

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.

features :

  • 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

Examples

JavaScript / pure (without an existing HTTP API)

Use this when your NodeJS process (a.k.a worker) does not currently expose an HTTP API.

// Usage
require('health-check-library')(port [, callback]);

If 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).

var healthy = require('health-check-library/javascript/pure')(8080, function onListening(){

    // do some initializations
    healthy(true); // you are ready
});

JavaScript / hapi

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.

If 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

Install

Install through npm

npm install health-check-library --save

Documentation

Specification

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.

Contribute

Look at contribution guidelines here : CONTRIBUTING.md

About

Expose an health-check API to *-worker or a health-check route for already existing API

http://bit.ly/1LJEDcE

License:MIT License


Languages

Language:JavaScript 86.6%Language:Shell 13.4%