@loopback/extension-health
v0.4.13
Published
An extension exposes health check related endpoints with LoopBack 4
Downloads
1,441
Readme
@loopback/extension-health
This module contains a component to report health status using @cloudnative/health.
Installation
npm install --save @loopback/extension-health
Basic use
{% include note.html content="this.configure() must be called before this.component() to take effect. This is a known limitation." %}
The component should be loaded in the constructor of your custom Application class.
Start by importing the component class:
import {HealthComponent} from '@loopback/extension-health';
In the constructor, add the component to your application:
this.component(HealthComponent);
By default, three routes are exposed at:
/health
- overall health status/live
- liveness status/ready
- readiness status
The paths can be customized via Health configuration as follows:
this.configure(HealthBindings.COMPONENT).to({
healthPath: '/health',
livePath: '/live',
readyPath: '/ready',
});
http://localhost:3000/health returns health in JSON format, such as:
{
"status": "UP",
"checks": [
{"name": "readiness", "state": "UP", "data": {"reason": ""}},
{"name": "liveness", "state": "UP", "data": {"reason": ""}}
]
}
Add custom live
and ready
checks
The health component allows extra
live
and ready
checks
to be added.
import {LiveCheck, ReadyCheck, HealthTags} from '@loopback/extension-health';
const myLiveCheck: LiveCheck = () => {
return Promise.resolve();
};
app.bind('health.MyLiveCheck').to(myLiveCheck).tag(HealthTags.LIVE_CHECK);
// Define a provider to check the liveness of a datasource
class DBLiveCheckProvider implements Provider<LiveCheck> {
constructor(@inject('datasources.db') private ds: DataSource) {}
value() {
return () => this.ds.ping();
}
}
app
.bind('health.MyDBCheck')
.toProvider(DBLiveCheckProvider)
.tag(HealthTags.LIVE_CHECK);
const myReadyCheck: ReadyCheck = () => {
return Promise.resolve();
};
app.bind('health.MyReadyCheck').to(myReadyCheck).tag(HealthTags.READY_CHECK);
Contributions
Tests
Run npm test
from the root folder.
Contributors
See all contributors.
License
MIT