Add collectors to monitoring (#6777)
* Add collectors to monitoring * Pass request and response objects to collectors
Daniel Hammerschmidt committed
Feb 20, 2025 at 23:37 UTC
3f77cfa93aa16aebe5d88438ff8b9015bc02e474
1 file changed
+3
monitoring.js
+3
@@ -42,6 +42,7 @@ module.exports.CreateMonitoring = function (parent, args) {
42
RelaySessions: { description: "Relay Sessions" }, // parent.webserver.relaySessionCount
43
RelayCount: { description: "Relay Count" } // Object.keys(parent.webserver.wsrelays).length30bb4fb74dfb758d36be52a7
44
}
45
+ obj.collectors = [];
46
if (parent.config.settings.prometheus != null) { // Create Prometheus Monitoring Endpoint
47
if ((typeof parent.config.settings.prometheus == 'number') && ((parent.config.settings.prometheus < 1) || (parent.config.settings.prometheus > 65535))) {
48
console.log('Promethus port number is invalid, Prometheus metrics endpoint has be disabled');
@@ -103,6 +104,7 @@ module.exports.CreateMonitoring = function (parent, args) {
104
};
105
for (const key in counters) { obj.counterMetrics[key].prometheus.reset(); obj.counterMetrics[key].prometheus.inc(counters[key]); }
106
res.set('Content-Type', obj.prometheus.register.contentType);
107
+ await Promise.all(obj.collectors.map((collector) => (collector(req, res))));
108
res.end(await obj.prometheus.register.metrics());
109
} catch (ex) {
110
console.log(ex);
@@ -111,4 +113,5 @@ module.exports.CreateMonitoring = function (parent, args) {
113
});
114
}
115
}
116
+ return obj;
117
}
\ No newline at end of file