UNPKG

menoetius

Version:

node middleware to automatically instrument node applications for consumption by prometheus

38 lines (31 loc) 829 B
const defaults = require('./defaults') const metrics = require('./metrics') async function sendMetrics (request, response) { response.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }) response.write(await metrics.summary()) response.end() } function observeMetrics (request, response) { var start = process.hrtime() response.on('finish', () => { metrics.observe(request.method, request.url, response.statusCode, start) }) } function instrument (server, options) { server.on('request', (request, response) => { if (request.url === options.url) { sendMetrics(request, response) } else { observeMetrics(request, response) } }) } function instrumentable (server) { return server } module.exports = { instrumentable: instrumentable, instrument: instrument }