@nestjs-mod/terminus
TypeScript icon, indicating that this package has built-in type declarations

1.13.3 • Public • Published

@nestjs-mod/terminus

Terminus integration provides readiness/liveness health checks for NestJS-mod (Wrapper for https://www.npmjs.com/package/@nestjs/terminus)

NPM version monthly downloads Telegram Discord

Installation

npm i --save @nestjs/terminus @nestjs-mod/terminus

Modules

Link Category Description
TerminusHealthCheckModule system Terminus integration provides readiness/liveness health checks for NestJS-mod (Wrapper for https://www.npmjs.com/package/@nestjs/terminus)

Modules descriptions

TerminusHealthCheckModule

Terminus integration provides readiness/liveness health checks for NestJS-mod (Wrapper for https://www.npmjs.com/package/@nestjs/terminus)

Use in NestJS

Example of use feature configurations and use standardHealthIndicators.

import { TerminusHealthCheckModule, TerminusHealthCheckFeatureConfiguration } from '@nestjs-mod/terminus';
import { NestFactory } from '@nestjs/core';

import { Module } from '@nestjs/common';
import { HealthIndicatorStatus, MemoryHealthIndicator } from '@nestjs/terminus';

export class FeatureTerminusHealthCheckFeatureConfiguration implements TerminusHealthCheckFeatureConfiguration {
  name = 'Feature';
  async isHealthy() {
    return {
      feature: {
        status: 'up' as HealthIndicatorStatus,
      },
    };
  }
}

@Module({
  imports: [
    TerminusHealthCheckModule.forFeature({
      featureModuleName: 'feature',
      featureConfiguration: new FeatureTerminusHealthCheckFeatureConfiguration(),
    }),
  ],
})
export class FeatureModule {}

@Module({
  imports: [
    TerminusHealthCheckModule.forRootAsync({
      configurationFactory: (memoryHealthIndicator: MemoryHealthIndicator) => ({
        standardHealthIndicators: [
          { name: 'memory_heap', check: () => memoryHealthIndicator.checkHeap('memory_heap', 150 * 1024 * 1024) },
        ],
      }),
      inject: [MemoryHealthIndicator],
    }),
    FeatureModule,
  ],
})
export class AppModule {}

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}

bootstrap();

Use in NestJS-mod

An example of using forRoot with parameters and use feature configurations with use standardHealthIndicators, you can see the full example here https://github.com/nestjs-mod/nestjs-mod-contrib/tree/master/apps/example-terminus.

import {
  DefaultNestApplicationInitializer,
  DefaultNestApplicationListener,
  bootstrapNestApplication,
  createNestModule,
} from '@nestjs-mod/common';
import { TerminusHealthCheckModule, TerminusHealthCheckFeatureConfiguration } from '@nestjs-mod/terminus';
import { HealthIndicatorStatus, MemoryHealthIndicator } from '@nestjs/terminus';

export class FeatureTerminusHealthCheckFeatureConfiguration implements TerminusHealthCheckFeatureConfiguration {
  name = 'Feature';
  async isHealthy() {
    return {
      feature: {
        status: 'up' as HealthIndicatorStatus,
      },
    };
  }
}

export const { FeatureModule } = createNestModule({
  moduleName: 'FeatureModule',
  imports: [
    TerminusHealthCheck.forFeature({
      featureModuleName: 'feature',
      featureConfiguration: new FeatureTerminusHealthCheckFeatureConfiguration(),
    }),
  ],
});

bootstrapNestApplication({
  modules: {
    system: [
      DefaultNestApplicationInitializer.forRoot(),
      TerminusHealthCheckModule.forRootAsync({
        configurationFactory: (memoryHealthIndicator: MemoryHealthIndicator) => ({
          standardHealthIndicators: [
            { name: 'memory_heap', check: () => memoryHealthIndicator.checkHeap('memory_heap', 150 * 1024 * 1024) },
          ],
        }),
        inject: [MemoryHealthIndicator],
      }),
      DefaultNestApplicationListener.forRoot({ staticEnvironments: { port: 3000 } }),
    ],
    feature: [FeatureModule.forRoot()],
  },
});

Shared providers

TerminusHealthCheckService

Shared imports

TerminusModule

Configuration

Key Description Constraints Default Value
standardHealthIndicators Standard health indicators @see https://docs.nestjs.com/recipes/terminus#setting-up-a-healthcheck optional - -

Static configuration

Key Description Constraints Default Value
endpoint Rest endpoint for health check optional health -
errorLogStyle The style of the error logger @default 'json' optional - -
logger The logger to use. Either default logger or your own. optional - -
gracefulShutdownTimeoutMs The timeout to wait in ms before the application shuts down @default 0 optional - -

Feature configuration

Key Description Constraints Default Value
name Name of health check isNotEmpty (name should not be empty) - -
isHealthy Logic for health check isNotEmpty (isHealthy should not be empty) - -

Back to Top

Links

License

MIT

Package Sidebar

Install

npm i @nestjs-mod/terminus

Weekly Downloads

44

Version

1.13.3

License

MIT

Unpacked Size

41.8 kB

Total Files

29

Last publish

Collaborators

  • endykaufman