health-check-library

    2.0.1 • Public • Published

    health-check-library

    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.

    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.

    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

    Currently supported

    JavaScript

    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

    Keywords

    none

    Install

    npm i health-check-library

    DownloadsWeekly Downloads

    50

    Version

    2.0.1

    License

    iAdvize

    Last publish

    Collaborators

    • fgribreau