@randlabs/js-metrics
v1.0.0
Published
Metrics & Health Mini Server
Downloads
1
Readme
js-metrics
Metrics is a lightweight web server that provides health status and Prometheus-compatible reports.
Installation
npm install --save @randlabs/js-metrics
Usage
const Metrics = require("@randlabs/js-metrics");
const metricsServer = await Metrics.createServer(options);
Example
const Metrics = require("@randlabs/js-metrics");
const metricsServer = await Metrics.createServer({
host: "127.0.0.1",
port: 3001,
accessToken: "1234",
endpoints: {
getHealth: "/health",
getStats: "/metrics",
},
getHealthCallback: () => {
return {
value: Math.random() * 100
};
},
metricsSetupCallback: (registry) => {
const g = new promclient.Gauge({
name: 'test_gauge',
help: 'Example of a gauge',
registers: [ registry ]
});
g.set(Math.random() * 100);
}
});
// do other stuff
await metricsServer.shutdown();
Create a new metrics web server with the given options
.
options
- Initialization options.options.host
- Bind address. Defaults to 127.0.0.1. Not used in cluster workers.options.port
- Specifies the server port. Not used in cluster workers.options.accessToken
- Protect access to endpoints with an access token. Optional. Not used in cluster workers.options.usingClusters
- If the app runs inside a cluster environment, set this option to true.options.endpoints
- Overrides the endpoints paths. Optional. Not used in cluster workers.options.endpoints.getHealth
- Overrides the "/health" url path. Optional.options.endpoints.getStats
- Overrides the "/stats" url path. Optional.options.getHealthCallback
- Callback function called when health information is required. It must return aHealthStatus
object.options.metricsSetupCallback
- Callback function called to initialize Prometheus metrics. It receives aregistry
objects where collectors must be added.
License
Apache 2.0