From c4a2b50c08344c3bf096118b67f73982210f7a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Vest=C3=B8l?= Date: Wed, 17 Oct 2018 21:50:32 +0200 Subject: [PATCH] Fixed some broken statistics --- master.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/master.js b/master.js index b044ebec..438cbda2 100644 --- a/master.js +++ b/master.js @@ -122,7 +122,10 @@ const expressPrometheus = require('express-prometheus-request-metrics'); Prometheus.collectDefaultMetrics({ timeout: 10000 }); // collects RAM usage etc every 10 s if(!config.disablePrometheusPushgateway){ const pushgateway = new Prometheus.Pushgateway('http://hme.danielv.no:9091'); - setInterval(() => pushgateway.push({ jobName: 'clusterio', groupings: {instance: config.publicIP + ":" + config.masterPort, owner: config.username}}, function(err, resp, body) {}), 5000) + setInterval(() => { + registerMoreMetrics(); + pushgateway.push({ jobName: 'clusterio', groupings: {instance: config.publicIP + ":" + config.masterPort, owner: config.username}}, function(err, resp, body) {}) + }, 5000) } // collect express request durations ms @@ -182,13 +185,6 @@ const prometheusMasterInventoryGauge = new Prometheus.Gauge({ help: 'Amount of items stored on master', labelNames: ["itemName"], }); -setInterval(()=>{ - let numberOfActiveSlaves = 0; - for(let instance in slaves){ - if(Date.now() - Number(slaves[instance].time) < 1000 * 30) numberOfActiveSlaves++; - } - prometheusConnectedInstancesCounter.set(numberOfActiveSlaves); -},10000); setInterval(()=>{ fs.writeFileSync("database/items.json", JSON.stringify(db.items)); },config.autosaveInterval || 60000); @@ -203,6 +199,11 @@ app.get('/metrics', (req, res) => { res.set('Content-Type', Prometheus.register.contentType); /// gather some static metrics + reisterMoreMetrics(); + res.end(Prometheus.register.metrics()); +}); + +function registerMoreMetrics(){ for(let instanceID in slaves){ // playercount try{ @@ -220,9 +221,13 @@ app.get('/metrics', (req, res) => { prometheusMasterInventoryGauge.labels(key).set(Number(db.items[key]) || 0); } } - - res.end(Prometheus.register.metrics()); -}); + // Slave count + let numberOfActiveSlaves = 0; + for(let instance in slaves){ + if(Date.now() - Number(slaves[instance].time) < 1000 * 30) numberOfActiveSlaves++; + } + prometheusConnectedInstancesCounter.set(numberOfActiveSlaves); +} // set up database var Datastore = require('nedb');