Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iadvize/health-check-library
Expose an health-check API to *-worker or a health-check route for already existing API
https://github.com/iadvize/health-check-library
hapi healtcheck http nodejs
Last synced: 2 months ago
JSON representation
Expose an health-check API to *-worker or a health-check route for already existing API
- Host: GitHub
- URL: https://github.com/iadvize/health-check-library
- Owner: iadvize
- License: mit
- Created: 2015-04-14T15:06:41.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-03-04T12:20:58.000Z (almost 3 years ago)
- Last Synced: 2024-11-11T21:54:46.466Z (3 months ago)
- Topics: hapi, healtcheck, http, nodejs
- Language: JavaScript
- Homepage: http://bit.ly/1LJEDcE
- Size: 117 KB
- Stars: 6
- Watchers: 50
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
health-check-library [![CircleCI](https://circleci.com/gh/iadvize/health-check-library.svg?style=svg)](https://circleci.com/gh/iadvize/health-check-library) [![Deps](https://david-dm.org/iadvize/health-check-library.png)](https://david-dm.org/iadvize/health-check-library) [![Version](http://badge.fury.io/js/health-check-library.png)](https://david-dm.org/iadvize/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](https://github.com/GoogleCloudPlatform/kubernetes/blob/06a1d6dd839a7169270ed09a1829381696fcca45/pkg/probe/http/http.go#L53-56).
![]()
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](http://en.wikipedia.org/wiki/Fail-fast)).
```
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](https://github.com/krakenjs/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](http://en.wikipedia.org/wiki/Fail-fast)).
```
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
```bash
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](http://semver.org) so any non-backward-compatible change will be a major release.## Contribute
Look at contribution guidelines here : [CONTRIBUTING.md](CONTRIBUTING.md)