fastify-custom-healthcheck
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.0 • Public • Published

    Fastify Custom Healthcheck

    js-semistandard-style Build Status

    fastify-custom-healthcheck is a plugin for creating a health route with custom evaluations.

    Install

    npm i fastify-custom-healthcheck

    Usage

    Require the module and just register it as any other fastify plugin. From fastify-custom-healthcheck on decorator is going to be added to your server for adding custom health checks.

    const fastify = require('fastify')();
    const customHealthCheck = require('fastify-custom-healthCheck');
    
    fastify.register(customHealthCheck, options).then(() => {
        fastify.addHealthCheck('metric', () => {
            return new Promise((resolve) => setTimeout(resolve, 5000));
        });
    });
    
    fastify.listen(3000);

    API

    register plugin

    fastify.register(customHealthCheck, {
        path: '/health/check', // default health
        info: {}, // custom information object
    });

    register options

    • path: path where you can reach health check route.
      • default value: '/health'.
    • info: object where you can define custom information you would like to include in healthcheck response object.
    • exposeFailure: Flag that enables additional information to be presented in health check object when a check fails.
      • default value: false

    Decorator

    After registering plugin you can use the decorator for adding custom health checks.

    fastify.addCustomHealthCheck(label, () => {}, { value: true });

    decorator options

    • value: If you add on addHealthCheck a value, when computing health check an equality check happens between evaluation and the value returned by the health check function. If the values are different health check fails.

    Example response

    {
      "healthChecks": {
        "mongo": {
          "status": "FAIL",
          "reason": "MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017\n    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16) {\n  name: 'MongoNetworkError'\n}]"
        },
        "kafka": "HEALTHY",
        "redis": "HEALTHY" 
      },
      "stats": {
        "creationTime": "2020-08-04T19:16:29.766Z",
        "uptime": 0.303361107,
        "memory": {
          "rss": 50102272,
          "heapTotal": 29270016,
          "heapUsed": 16499104,
          "external": 20754444,
          "arrayBuffers": 19273278
        }
      },
      "info": {
        "example": "Response",
      }
    }

    Acknowledgements

    This module is inspired by server-health and the need of having this functionality in fastify.

    Changelog

    CHANGELOG.md

    Example

    You can also check an example usage.

    Issues

    For any issues.

    License

    MIT License

    Install

    npm i fastify-custom-healthcheck

    DownloadsWeekly Downloads

    358

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    22.2 kB

    Total Files

    15

    Last publish

    Collaborators

    • gkampitakis