@brunnerlivio/terminus
v6.5.2
Published
Nest - modern, fast, powerful node.js web framework (@terminus)
Downloads
51
Readme
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
- Author - Kamil Myśliwiec and Livio Brunner
- Website - https://nestjs.com
- Twitter - @nestframework
License
Nest is MIT licensed.