Add collectors to monitoring (#6777)

* Add collectors to monitoring

* Pass request and response objects to collectors
This commit is contained in:
Daniel Hammerschmidt 2025-02-20 23:37:14 +01:00 committed by GitHub
parent 5ee9aa2410
commit 3f77cfa93a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -42,6 +42,7 @@ module.exports.CreateMonitoring = function (parent, args) {
RelaySessions: { description: "Relay Sessions" }, // parent.webserver.relaySessionCount
RelayCount: { description: "Relay Count" } // Object.keys(parent.webserver.wsrelays).length30bb4fb74dfb758d36be52a7
}
obj.collectors = [];
if (parent.config.settings.prometheus != null) { // Create Prometheus Monitoring Endpoint
if ((typeof parent.config.settings.prometheus == 'number') && ((parent.config.settings.prometheus < 1) || (parent.config.settings.prometheus > 65535))) {
console.log('Promethus port number is invalid, Prometheus metrics endpoint has be disabled');
@ -103,6 +104,7 @@ module.exports.CreateMonitoring = function (parent, args) {
};
for (const key in counters) { obj.counterMetrics[key].prometheus.reset(); obj.counterMetrics[key].prometheus.inc(counters[key]); }
res.set('Content-Type', obj.prometheus.register.contentType);
await Promise.all(obj.collectors.map((collector) => (collector(req, res))));
res.end(await obj.prometheus.register.metrics());
} catch (ex) {
console.log(ex);
@ -111,4 +113,5 @@ module.exports.CreateMonitoring = function (parent, args) {
});
}
}
return obj;
}