function live() { var client = new Prometheus(); var logins = client.newCounter({ namespace: "counters", name: "logins", help: "Counters" }); var requests = client.newCounter({ namespace: "counters", name: "requests", help: "Counters" }); var bytes = client.newGauge({ namespace: "gauge", name: "bytes", help: "bytes" }); client.listen(9091); var data = {}; var bytesCounter = 0; function randomWalk(labels, variation) { logins.increment(labels, (Math.random() * variation) - (variation / 2)); requests.increment(labels, 100 + (Math.random() * 10)); bytesCounter++; bytes.set(labels, bytesCounter); } setInterval(function() { randomWalk({server: "backend-01", app: "backend"}, 2); randomWalk({server: "backend-02", app: "backend"}, 2); randomWalk({server: "webserver-01", app: "frontend"}, 2); randomWalk({server: "webserver-02", app: "frontend"}, 2); randomWalk({server: "webserver_03", app: "frontend"}, 2); randomWalk({server: "webserver.03", app: "frontend"}, 2); }, 10000); }
var Prometheus = require("prometheus-client"); var metricsClient = new Prometheus(); var memoryGauge = metricsClient.newGauge({ namespace: "memory", name : "usage", help : "Memory Usage" }); var memoryGaugeInterval = setInterval(function() { var usage = process.memoryUsage(); memoryGauge.set({type: 'rss'}, usage.rss); memoryGauge.set({type: 'heapTotal'}, usage.heapTotal); memoryGauge.set({type: 'heapUsed'}, usage.heapUsed); }, 1000); module.exports.metrics = { client: metricsClient, httpRequestCounter: metricsClient.newCounter({ namespace: "http", name : "http_requests_total", help : "The number of http requests received." }), httpResponseCounter: metricsClient.newCounter({ namespace: "http", name : "http_responses_total", help : "The number of http responses sent."