UNPKG

@promster/server

Version:

Server exposing metrics under GET /metrics

35 lines (30 loc) 926 B
'use strict'; 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;