UNPKG

@promster/server

Version:

Server exposing metrics under GET /metrics

42 lines (37 loc) 1.17 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var node_http = require('node:http'); var metrics = require('@promster/metrics'); var types = require('@promster/types'); 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; Object.keys(types).forEach(function (k) { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: function () { return types[k]; } }); });