@promster/server
Version:
Server exposing metrics under GET /metrics
35 lines (30 loc) • 926 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var node_http = require('node:http');
var metrics = require('@promster/metrics');
const defaultOptions = {
port: 7788,
hostname: '0.0.0.0',
detectKubernetes: false
};
const createServer = async options => {
const defaultedOptions = {
...defaultOptions,
...options
};
const server = node_http.createServer(async (_req, res) => {
res.writeHead(200, 'OK', {
'content-type': metrics.getContentType()
});
res.end(await metrics.getSummary());
});
return new Promise((resolve, reject) => {
const skipServerStart = metrics.skipMetricsInEnvironment(defaultedOptions);
const port = skipServerStart ? undefined : defaultedOptions.port;
server.listen(port, defaultedOptions.hostname, () => {
server.on('error', reject);
resolve(server);
});
});
};
exports.createServer = createServer;