Giter Site home page Giter Site logo

bauer-xcel-media / node-healthchecks-api Goto Github PK

View Code? Open in Web Editor NEW
26.0 9.0 11.0 2.58 MB

The Node.js implementation of the Health Checks API by Hootsuite

License: MIT License

JavaScript 98.00% Dockerfile 0.49% Makefile 1.27% Shell 0.24%
health healtcheck healthchecks health-check health-checks health-checks-api hootsuite nodejs node-js microservice

node-healthchecks-api's Introduction

Health Checks for microservices

npm version GitHub (release) node (tag) Build Status Commitizen friendly codecov semantic-release Waffle.io - Issues in progress Known Vulnerabilities Greenkeeper badge

A Node.js implementation of the Health Checks API provided by Hootsuite.

Installation

npm install --save healthchecks-api

Functionality

Enables an application/service combined Health Check view when used in the ecosystem of microservices. This includes a service/application self check and following dependency checks:

  • internal (composed) - local service dependencies (eg. database, cache). Generally these are dedicated local services used only by subject service/application,
  • external (aggregated/associated) - usually another microservices in the ecosystem, which the subject service/application depends on.

The dependencies can be:

  • critical - the subject service/application is considered non-operational when such a dependency is non-operational,
  • non-critical - the subject service/application is partly operational even when such a dependency is non-operational, as it can still serve a subset of its capabilities.

NOTE

The critical/non-critical dependency atribute is an additional (optional) semantic of this module only.

Health Checks API does not specify such.

Classifying a particular dependency as non-critical (critical: false attribute of a dependency configuration) results in reporting it being in a WARN state at the dependency owner level, when the dependency is reported being in either WARN or CRIT state at its own level.

Example configuration for non-critical dependency:

checks:
  - name: service-2
    critical: false
    check: http
    url: http://service-2:3002

By default all dependencies are classified as critical.

Another dependency division is:

  • traversable - this means the dependency implements the Health Checks API itself and therefore one can traverse to its Health Check API endpoint and check its own state together with its dependencies states.
  • non-traversable - the dependency health state is still reported by an appropriate check type, but the service does not implement the Health Checks API, therefore one cannot drill-down due to observe its internal state details.

NOTE

The traversable dependency capability is resolved by this module in a runtime.

Health status reports

The health is reported in following states:

  • OK - green - all fine ;)
  • WARN - warning - yellow - partly operational, the issue report available (description and details).
  • CRIT - critical - red - non-operational, the error report available (description and details).

The overall health state of the subject service/application is an aggregation of its own state and its dependencies state. Aggregation is done with a respect to following (the order matters!):

  • when there is (are) any red (critical) state (either the subject service/application state or any of its dependencies states) first found red state is reported as the resulting overall state (with its description and details),
  • when there is (are) any yellow (warning) state (either the subject service/application state or any of its dependencies states) first found yellow state is reported as the resulting overall state (with its description and details),
  • The overall subject service/application state is green only when its self-check and all of its dependencies are green.

Usage

The module works as a middleware, exposing the Health Checks API routes via chosen http server framework routing system.

Service details (about endpoint)

The Health Checks API about endpoint is supposed to describe the underlying service using this module. The module takes particular service description attributes either from the Configuration or mapping them from the service's package.json as a fallback. When particular attribute is missing both in the service config and in package.json a default value is taken, when provided.

Here is the table with particular fields, their mapping to config attributes and fallback mapping to package.json and optional defaults:

Attribute name Config attribute name package.json fallback - attribute mapping Static or dynamic fallback (defaults)
id name name -
name name name -
description description description -
version version version 'x.x.x'
host host - require('os').hostname()
protocol protocol - 'http'
projectHome projectHome homepage -
projectRepo projectRepo repository.url 'unknown'
owners owners author + contributors -
logsLinks logsLinks - -
statsLinks statsLinks - -
dependencies checks - -

NOTE

The final value is resolved with a fallback from left to right, as presented in above table.

Configuration

The module configuration is a single yaml file and represents the subject service/application context. The default path for the config file is ./conf/dependencies.yml.

An example config:

version: "3.1"

name: demo-app
description: Nice demo application :)

checks:
  - check: self
    memwatch: memwatch-next

  - name: mongo
    url: mongodb://mongo/test
    type: internal
    interval: 3000
    check: mongo

  - name: service-1
    url: http://service-1:3001
    type: external
    interval: 1000
    check: http

  - name: service-2
    url: http://service-2:3002
    type: external
    critical: false
    interval: 1000
    check: http

NOTE

Alternatively the configuration can be passed directly to the module initialization as an options.service.config attribute object value:

const healthCheck = require('healthchecks-api');
const express = require('express');
const app = express();
await healthCheck(app,
       {
           adapter: 'express',
           service: {
               config: {
                  name: 'demo-app',
                  description: 'Nice demo application :)',
                  statsLinks: [ 'https://my-stats/demo-app' ],
                  logsLinks: [ 'https://my-logs/demo-app/info', 'https://my-logs/demo-app/debug' ],
                  checks: [
                      {
                          name: 'mongo',
                          url: 'mongodb://mongo/test',
                          type: 'internal',
                          interval: 3000,
                          check: 'mongo',
                      },
                      {
                          name: 'service-1',
                          url: 'http://service-1:3001',
                          interval: 1000,
                          check: 'http',
                      }
                   ]
               },
           },
       })

Initialization

The library initialization depends on chosen http server framework, but in any case this will be about 2 lines of code. See the examples below.

Example - Express.js powered application

See: Express.js framework.

const healthCheck = require('healthchecks-api');

const startServer = async () => {
    const app = express();
    // some initialization steps

    await healthCheck(app);
    // rest of initialization steps
}

startServer();

Check types

Following check types are supported:

self check

The service/application check for its own health. It checks the CPU and Memory consumption [%] and verifies them against given alarm levels:

Example config:

checks:
  - check: self
    memwatch: memwatch-next
    secondsToKeepMemoryLeakMsg: 60
    metrics:
      memoryUsage:
        warn: 90
        crit: 95
      cpuUsage:
        warn: 50
        crit: 80

Memory leak detection

Additionally this check can listen and react to a memory leak event leveraging the memwatch-next library or one of its ancestors/descendants. Due to provide this functionality set the memwatch property to the name of the library in NPM, as shown in the example config above.

The linked library must provide the leak event as in the example below:

const memwatch = require('memwatch-next');
memwatch.on('leak', function(info) { ... });

http check

The health check for a linked HTTP service, usually an API provider.

Example config:

checks:
  - check: http
    name: service-2
    url: http://service-2:3002
    method: get # default
    type: external # default
    interval: 3000 # default [milliseconds]
    critical: true # default

Checks whether the service responds at given url. Determines whether it is traversable (will work only when given method is get) and resolves aggregated service state when so.

mongo check

Checks the availability of the Mongo DB instance at given url.

Example config:

checks:
  - check: mongo
    name: mongo
    url: mongodb://mongo/test
    type: internal
    interval: 3000

redis check

Checks the availability of the Redis instance at given url.

Example config:

checks:
  - check: redis
    name: redis
    url: redis://redis
    type: internal

elasticsearch check

Checks the availability of the Elasticsearch instance at given url.

Example config:

checks:
  - check: elasticsearch
    name: elasticsearch
    url: elasticsearch:9200
    type: internal

mysql check

Checks the availability of the MySQL instance at given url.

Example config:

checks:
 - name: mysql
    url: mysql
    type: internal
    interval: 3000
    check: mysql
    user: root
    password: example
    database: mysql

NOTE

The url config property maps to the host property of the mysql connection options.

Development

Contribution welcome for:

  • check types
  • framework adapters

PRs with any improvements and issue reporting welcome as well!

Framework adapters

The module is designed to operate as a middleware in various http based Node.js frameworks. Currently supported frameworks are:

A particular framework implementation is an adapter exposing a single method.

Here's the example for the Express.js framework:

/**
 * Adds a particular Health Check API route to the `http` server framework.
 * The route is one of these difined by the {@link https://hootsuite.github.io/health-checks-api/|Health Checks API} specification.
 * The implementation should call given `route.handler` due to receive a response data.
 * The route handler takes combined request parameters and the service descriptor (usually `package.json` as an object) as the parameters
 * and returns the object with the response data (`status`, `headers`, `contentType` and `body`).
 * 
 * @async
 * @param {Object} service      - The service/application descriptor (usually a package.json);
 * @param {Object} server       - The Express.js application or Route.
 * @param {Object} route        - The Health Check API route descriptor object.
 * @param {string} route.path   - The Health Check API route path.
 * @param {Function} route.path - The Health Check API route handler function.
 * @returns {Promise}
 */
const express = async (service, server, route) => {
    // 1. Expose given route in the `http` server application, here an example for the `Express.js`:
    return server.get(path.join('/status', route.path), async (req, res, next) => {
        try {
            // 2. Combine the `Express.js` route parameters:
            const params = Object.assign({}, req.params, req.query, req.headers);
            // 3. Call given `route.handler` passing combined parameters and given service descriptor:
            const result = await route.handler(params, service);
            // 4. Decorate the `Express.js` response:
            res.status(result.status);
            res.set('Content-Type', result.contentType);
            res.set(result.headers);
            // 5. Return the response body according to given `contentType`:
            switch (result.contentType) {
                case constants.MIME_APPLICATION_JSON:
                    res.json(result.body);
                    break;
                default:
                    res.send(result.body);
            }
        } catch (err) {
            // 6. Deal with the Error according to `Express.js` framework rules.
            next(err);
        }
    });
};
module.exports = express;

An adapter can be declared as follows:

const healthChecks = require('healthchecks-api');

(async () => {
    // The default is 'express' adapter, when not declared:
    await healthChecks(myServer);

    // An internally supported adapter:
    await healthChecks(myServer, {
        adapter: 'express',
    });

    // A module from an npm registry - must export a proper function.
    await healthChecks(myServer, {
        adapter: 'my-adapter-module',
    });

    // An adapter function declared directly:
    await healthChecks(myServer, {
        adapter: async (service, server, route) => {
            // your adapter implementation details
        }
    });
})();

Developing new check types

Create a custom check type class

A custom check class must extend the Check class and implement the asynchronous start() method. The method is supposed to perform the actual check. When the check is performed in intervals (pull model) then the class should use derived this.interval [ms] property, which can be set in the yaml configuration (default is 3000 ms).

const healthChecks = require('healthchecks-api');
const Check = healthChecks.Check;

class MyCheck extends Check {
    constructor(config) {
        super(config);
        // this.config contains the properties from the `yaml` check config part.
        if (this.config.myProperty) {
            // ...
        }
        // class initialization code
    }

    async start() {
        // actual check code to be executed in `this.interval` [ms] intervals.
        // ...
        // set up the resulting state:
        this.ok(); // | this.warn(description, details); | this.crit(description, details);
    }
}
// This is optional - by default the new check type will be the class name in lowercase.
// One can change that by following line.
MyCheck.type = 'mycheck'; // the default

NOTE: The check name to be used in yaml configs is by default the class name in lowercase.

See the particular checks implementations for reference - ./lib/checks/*.

Add the check class to the module check type list

Additional check types (classes) are to be declared in runtime, before starting creating the health checks routes. Here's the example:

const healthCheck = require('healthchecks-api');
const myCheck = require('./lib/my-check.js');

const startServer = async () => {
    const app = express();
    // some initialization steps

    await healthCheck.addChecks(myCheck);

    await healthCheck(app);
    // rest of initialization stepa
}

startServer();

Use the new check type in your yaml configurations:

version: "3.1"

name: demo-app
description: Nice demo application :)

checks:
  - check: mycheck
    # properties are accessible in the class instance property `config` - eg. `this.config.myProperty`.
    myProperty: value

Exporting multiple check classes in a custom module

Check classes can be bundled into a module and optionally published in private or public NPM registry for reusability. The module must export allowable value for the this module's addCkecks method. The addChecks method can take a value of following parameter types as an argument:

  • single Check class extension,
  • array of Check class extension classes,
  • object instance - a map with a key representings a check name (type) and value being a Check class extension class.
  • module name to link from NPM registry. The module must export one of above.

Testing

Unit tests

codecov

Run unit tests locally:

npm test

Integration test

The integration test is a Docker Compose based setup. The setup shows the health-check-api functionality reported by Microservice Graph Explorer - the dashboard-like application which presents service dependencies and their health status and allows to traverse dependencies which expose Health Checks API.

One can observe changing health status of the demo-app application by:

  • stopping and starting particular services,
  • emulating high load to a particular http service,
  • emulating memory leak in particular http service.

The set-up

NOTE

The service-2 is classified as non-critical for the demo-app so it will be reported as WARN at the demo-app dashboard even if it gets the CRIT state.

Running the test

cd ./test/integration
make up

This will build and start the docker-compose services and open the Microservice Graph Explorer in the default browser at http://localhost:9000/#/status/http/demo-app:3000.

Starting and stopping services

make stop SERVICE=service-2
make stop SERVICE=mongo

make start SERVICE=service-2
make start SERVICE=mongo

Emulating high load and memory leak

Following example commands use the localhost:$PORT urls. Port mapping to services:

  • 3000 - demo-app
  • 3001 - service-1
  • 3002 - service-2
  • 3003 - service-3
  • 3004 - service-4

One can use the Apache Benchmark tool for emulating a high load to an http service, eg:

ab -n 10000 -c 20 http://localhost:3001/heavy

To emulate the memory leak execute following:

curl http://localhost:3000/make-leak

Tearing down the set-up

make down

node-healthchecks-api's People

Contributors

greenkeeper[bot] avatar hrharshrathi avatar snyk-bot avatar valdemon avatar vsetka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-healthchecks-api's Issues

An in-range update of superagent is breaking the build 🚨

The dependency superagent was updated from 5.1.2 to 5.1.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

superagent is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v5.1.3
  • fix: fixed support for NODE_TLS_REJECT_UNAUTHORIZED (per #1511) 2377e62

v5.1.2...v5.1.3

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint-plugin-jsdoc is breaking the build 🚨

The devDependency eslint-plugin-jsdoc was updated from 4.1.1 to 4.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jsdoc is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v4.2.0

4.2.0 (2019-03-13)

Features

  • make require-returns-description accept void functions (fixes #157) (39918c8)
  • make require-returns-description accept void functions (fixes #157) (75d51dc)
Commits

The new version differs by 3 commits.

  • 39918c8 feat: make require-returns-description accept void functions (fixes #157)
  • 8e9f35e docs: generate docs
  • 75d51dc feat: make require-returns-description accept void functions (fixes #157)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint-plugin-jsdoc is breaking the build 🚨

The devDependency eslint-plugin-jsdoc was updated from 3.9.0 to 3.9.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jsdoc is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v3.9.1

3.9.1 (2018-10-23)

Bug Fixes

  • support valid colon for require-description-complete-sentence rule (#98) (dc2f86f)
Commits

The new version differs by 1 commits.

  • dc2f86f fix: support valid colon for require-description-complete-sentence rule (#98)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint-plugin-jest is breaking the build 🚨

The devDependency eslint-plugin-jest was updated from 21.26.1 to 21.26.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jest is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v21.26.2

21.26.2 (2018-10-26)

Bug Fixes

  • no-focused-tests: detect usage like 'fit.each()' (63e6818), closes #188
Commits

The new version differs by 1 commits.

  • 63e6818 fix(no-focused-tests): detect usage like 'fit.each()'

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of mongodb is breaking the build 🚨

The dependency mongodb was updated from 3.4.0 to 3.4.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

mongodb is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 5 commits.

  • bc93598 chore(release): 3.4.1
  • e46a70e fix: always check for network errors during SCRAM conversation
  • e44f553 chore: update google analytics code
  • 20800ac fix(bulk): use original indexes as map for current op index
  • 3f34e3e doc: update version for doc generation

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint-plugin-jest is breaking the build 🚨

The devDependency eslint-plugin-jest was updated from 22.1.0 to 22.1.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jest is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v22.1.1

22.1.1 (2018-12-03)

Bug Fixes

  • add guard for missing assertion invocation (#58) (73c9187)
Commits

The new version differs by 1 commits.

  • 73c9187 fix: add guard for missing assertion invocation (#58)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of mime-types is breaking the build 🚨

The dependency mime-types was updated from 2.1.25 to 2.1.26.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

mime-types is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for 2.1.26
  • deps: [email protected]
    • Add application/x-keepass2 with extension .kdbx
    • Add extension .mxmf to audio/mobile-xmf
    • Add extensions from IANA for application/*+xml types
    • Add new upstream MIME types
Commits

The new version differs by 12 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Invalid regular expression: /^\\status\\(?:([^\\/]+?))\\/?$/: Unmatched ')'

Got Error while running this lib :
{"level":"error","message":"SyntaxError: Invalid regular expression: /^\\status\\(?:([^\\/]+?))\\/?$/: Unmatched ')'","service":"user-service"}

This is my code

await healthCheck(app, {
    adapter: 'express',
    service: {
      config: {
        name: 'node-js-revisit',
        description: 'Demo app for studying about typescript',
        checks: [
          {
            check: 'self',
            memwatch: 'memwatch-next',
          },
          {
            name: 'mongo',
            url: process.env.DB_URL,
            type: 'external',
            interval: 3000,
            check: 'mongo',
          },
        ],
      },
    },
  });

  app.get('/status', (_req, res) => res.send({ message: 'OK' }));
  app.use('/', router(logger, ajv));
  app.use(errorHandler);

this is my node, express and lib version
node : v15.13.0
healthchecks-api : ^0.2.0
express : ^4.17.1

OS Windows 10

thanks

An in-range update of eslint-plugin-jest is breaking the build 🚨

The devDependency eslint-plugin-jest was updated from 22.5.1 to 22.6.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jest is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v22.6.0

22.6.0 (2019-05-22)

Features

Commits

The new version differs by 9 commits.

  • 14d83ef feat(rules): add no-commented-out rule (#262)
  • 83ff198 chore: migrate no-jest-import to typescript (#259)
  • 718c08c chore: upgrade @typescript-eslint
  • ca2aa27 chore: port lowercase-name to TypeScript (#258)
  • 3df0058 chore(ci): run danger with lts version of node
  • 48e3a59 chore: precompile with babel (#257)
  • 8670804 chore: bump deps
  • 05eb11a chore: fix lint error
  • dff6446 docs: link to eslint-plugin-jest-formatting

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of elasticsearch is breaking the build 🚨

The dependency elasticsearch was updated from 16.5.0 to 16.6.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

elasticsearch is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 5 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of nock is breaking the build 🚨

The devDependency nock was updated from 10.0.2 to 10.0.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

nock is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v10.0.3

10.0.3 (2018-12-03)

Bug Fixes

Commits

The new version differs by 4 commits.

  • 5ae978b docs: show usage of beforeFunc in nockback (#1263)
  • 88fbdc2 fix: filtering by regex (#1089)
  • 6cd119b chore(package): update superagent to version 4.0.0
  • 4194106 docs(README): recorder.reset -> recorder.clear (#1248)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of http-status is breaking the build 🚨

The dependency http-status was updated from 1.3.1 to 1.3.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

http-status is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 2 commits.

  • 5674814 Bump to version 1.3.2
  • f9bd1de 502: wrong key for name and message

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

await healthCheck(app) doesn't wait

HI,

I have an http check, mongo check, and redis check. I was under the impression that the following code would wait until the healthchecks are healthy. Is that an incorrect assumption? If my assumption is incorrect, how can I wait?

var startServer = async () => {
   try {
            https.createServer(httpsOptions, app).listen(config.port, config.ip);
            var x = await healthCheck(app);
            console.log('i should not get here if my checks are critical');
   }catch (error) {
            console.log(error);
   }

};
startServer();

thanks,
jas

An in-range update of eslint is breaking the build 🚨

The devDependency eslint was updated from 5.15.3 to 5.16.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v5.16.0
  • dfef227 Build: gensite passes rulesMeta to formatter rendering (#11567) (Kevin Partington)
  • c06d38c Fix: Allow HTML formatter to handle no meta data (#11566) (Ilya Volodin)
  • 87a5c03 Docs: func-style: clarify when allowArrowFunctions is used (#11548) (Oliver Joseph Ash)
  • bc3e427 Update: pass rule meta to formatters RFC 10 (#11551) (Chris Meyer)
  • b452f27 Chore: Update README to pull in reviewer data (#11506) (Nicholas C. Zakas)
  • afe3d25 Upgrade: Bump js-yaml dependency to fix Denial of Service vulnerability (#11550) (Vernon de Goede)
  • 4fe7eb7 Chore: use nyc instead of istanbul (#11532) (Toru Nagashima)
  • f16af43 Chore: fix formatters/table test (#11534) (Toru Nagashima)
  • 78358a8 Docs: fix duplicate punctuation in CLI docs (#11528) (Teddy Katz)
Commits

The new version differs by 11 commits.

  • ded2f94 5.16.0
  • ea36e13 Build: changelog update for 5.16.0
  • dfef227 Build: gensite passes rulesMeta to formatter rendering (#11567)
  • c06d38c Fix: Allow HTML formatter to handle no meta data (#11566)
  • 87a5c03 Docs: func-style: clarify when allowArrowFunctions is used (#11548)
  • bc3e427 Update: pass rule meta to formatters RFC 10 (#11551)
  • b452f27 Chore: Update README to pull in reviewer data (#11506)
  • afe3d25 Upgrade: Bump js-yaml dependency to fix Denial of Service vulnerability (#11550)
  • 4fe7eb7 Chore: use nyc instead of istanbul (#11532)
  • f16af43 Chore: fix formatters/table test (#11534)
  • 78358a8 Docs: fix duplicate punctuation in CLI docs (#11528)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

https check

When I try to check the health status of REST API which is https based - am getting self-signed certificate error. Any ideas on how to fix them ?

An in-range update of eslint-plugin-jsdoc is breaking the build 🚨

The devDependency eslint-plugin-jsdoc was updated from 4.6.0 to 4.7.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jsdoc is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v4.7.0

4.7.0 (2019-04-01)

Features

  • make check-returns ignore abstract methods (7505604)
Commits

The new version differs by 2 commits.

  • 7505604 feat: make check-returns ignore abstract methods
  • b1301d6 Makes "Check Returns" ignore abstract methods.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of semantic-release is breaking the build 🚨

The devDependency semantic-release was updated from 15.13.32 to 15.14.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

semantic-release is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v15.14.0

15.14.0 (2019-12-21)

Features

  • pass envi-ci values to plugins context (a8c747d)
Commits

The new version differs by 2 commits.

  • a8c747d feat: pass envi-ci values to plugins context
  • fc70726 chore: add Mockserver generated file to gitignore

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint-plugin-jest is breaking the build 🚨

The devDependency eslint-plugin-jest was updated from 22.3.0 to 22.3.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint-plugin-jest is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v22.3.1

22.3.1 (2019-03-12)

Bug Fixes

  • no-identical-title: not reporting when using backticks (#237) (4f8ef6d), closes #232
Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.