healthcheck-fastit

0.3.1 • Public • Published

health-check

Build Status codecov.io Dependency Status

An health check module for express and loopback

Install

npm install --save healthcheck-fastit

Usage

In your app, add the following code:

config = {}
healthcheck = require('healthcheck-fastit') config
app.use healthcheck
curl http://localhost/api/health-check

API response

{
  "uptime": 42 // in seconds
  "postgres": {
    "status": "ok", // or ko
  },
  "mongo": {
    "status": "ok", // or ko
  },
  "elasticsearch": {
    "status": "ok", // or ko
  }
}

Database health check

Postgres

Example with postgres-node:

express = require 'express'
pg = require 'pg'
 
db =
  name: 'dbname'
  host: 'localhost'
  port: '5432'
  username: 'user'
  password: 'pwd'
 
connectionString = "postgres://#{db.username}:#{db.password}@#{db.host}:#{db.port}/#{db.name}"
 
config =
  postgres:
    client: new pg.Client connectionString
 
app = express()
healthcheck = require('../main/src/module') config
app.use healthcheck
 
app.server = app.listen 3000

Mongo

Example with mongo-db:

express = require 'express'
mongodb = require 'mongodb'
 
db =
  name: 'dbname'
  host: 'localhost'
  port: '5432'
  username: 'user'
  password: 'pwd'
connectionString = "mongodb://#{db.username}:#{db.password}@#{db.host}:#{db.port}/#{db.name}"
 
MongoClient = mongodb.MongoClient
mongoClient = new MongoClient()
 
app = express()
 
mongo.mongoClient.connect url(err, db) ->
  return if err?
  config =
    mongo:
      client: db
  healthcheck = require('../main/src/module') config
  app.use healthcheck
 
  app.server = app.listen 3000
 

Elasticsearch

 
elasticsearch = require 'elasticsearch'
express = require 'express'
 
config =
  host: 'localhost'
  port: 9200
 
app = express()
 
config =
  elasticsearch =
    client: new elasticsearch.Client
      host: config.host + ':' + config.port
      log: 'debug'
 
healthcheck = require('../main/src/module') config
app.use healthcheck
 
app.server = app.listen 3000
 

Custom healthchecks

You can add your own healthchecks like this:

 
express = require 'express'
 
config =
  custom:
    hello: (done) ->
      done null'hello is OK!'
    dataConsistency: (done) ->
      done null{
        status: 'ok'
        somethingElse: 123
      }
    error: (done) ->
      done 'Unexpected error' # this error will be logged 
  logger: console # you can specify here a logger with an "error" method to log errors 
 
app = express()
healthcheck = require('../main/src/module') config
app.use healthcheck
 
app.server = app.listen 3000
 

Then the response looks like this:

{
  uptime: "2.31 s",
  hello: "hello is OK!",
  dataConsistency: {
    status: 'ok',
    somethingElse: 123,
  }
}

Readme

Keywords

none

Package Sidebar

Install

npm i healthcheck-fastit

Weekly Downloads

3

Version

0.3.1

License

MIT

Last publish

Collaborators

  • nicgirault