Skip to content
A terminus module for Nest framework (node.js) 🤖
TypeScript JavaScript Dockerfile
Branch: master
Clone or download
BrunnerLivio Merge pull request #422 from nestjs/renovate/class-validator-0.x
fix(deps): update dependency class-validator to v0.11.0
Latest commit 05d6936 Nov 3, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github chore(): Add FUNDING.yml Jun 19, 2019
e2e fix(): Update tests to @godaddy/terminus@4.1.2 Jun 17, 2019
lib bugfix(oracle): Support oracle connection for pingDb query Sep 23, 2019
sample Merge pull request #422 from nestjs/renovate/class-validator-0.x Nov 3, 2019
.gitignore Deploy dev doc on master push to gh pages using travis Sep 6, 2018
.npmignore fix(npm): Make npm package smaller Nov 7, 2018
.prettierrc Initial commit Aug 29, 2018
.travis.yml ci(): Remove Github Docs Sep 23, 2019
CONTRIBUTING.md Initial commit Aug 29, 2018
Dockerfile build(): disable opencollective in CI Jun 17, 2019
Gulpfile.js fix(disk): Use types from check-disk-space package Jun 28, 2019
README.md chore(): Remove Gitter badge from readme Jun 28, 2019
docker-compose.yml chore(deps): update mysql docker tag to v5.7.27 Jul 22, 2019
index.d.ts fix(package): typeorm package dependencies Nov 6, 2018
index.js fix(test): Fix ts error on compilation Nov 7, 2018
index.ts test(dns): Add more dns error tests Nov 7, 2018
jest.json test(grpc): Add unit test for GRPCHealthIndicator Jun 3, 2019
package-lock.json Merge pull request #421 from nestjs/renovate/grpc-1.x Nov 3, 2019
package.json Merge pull request #421 from nestjs/renovate/grpc-1.x Nov 3, 2019
renovate.json Add renovate.json Mar 17, 2019
tsconfig.json ci(): Improve build jobs Jul 15, 2019
tslint.json fix(database): Load database packages lazily Apr 21, 2019

README.md

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.

NPM Version Package License NPM Downloads Travis Linux Discord Backers on Open Collective Sponsors on Open Collective

Description

This module contains integrated healthchecks for Nest. These healthchecks run in an internal execution manager based on the Terminus-package.

Installation

In order to install @nestjs/terminus you must install @godaddy/terminus - the library which will be used to execute the healthchecks.

@nestjs/terminus integrates with a lot of cool technologies, such as typeorm, grpc, mongodb, and many more! In most cases you do not want to install all the optional dependencies which would be needed for these integrations. Therefore we highly recommend to use the --no-optional option. In case you have missed a dependency, @nestjs/terminus will throw an error and prompt you to install the required dependency. So you will only install what is actually required!

npm install --save @nestjs/terminus @godaddy/terminus --no-optional

Usage

Import the Terminus module with the following options for a healthcheck with a database health inidcator.

const getTerminusOptions = (
  db: TypeOrmHealthIndicator,
): TerminusModuleOptions => ({
  endpoints: [
    {
      // The health check will be available with /health
      url: '/health',
      // All the indicator which will be checked when requesting /health
      healthIndicators: [
        // Set the timeout for a response to 300ms
        async () => db.pingCheck('database', { timeout: 300 })
      ],
    },
  ],
});

@Module({
  imports:[
    // Make sure TypeOrmModule is available in the module context
    TypeOrmModule.forRoot({ ... }),
    TerminusModule.forRootAsync({
      // Inject the TypeOrmHealthIndicator provided by nestjs/terminus
      inject: [TypeOrmHealthIndicator],
      useFactory: db => getTerminusOptions(db),
    }),
  ],
})
export class HealthModule { }

If everything is set up correctly, you can access the healthcheck on http://localhost:3000/health.

{
  "status": "ok",
  "info": {
    "database": {
      "status": "up"
    }
  }
}
    

For more information, see docs or internal documentation. You can find further samples in the samples/ folder of this repository.

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.

You can’t perform that action at this time.