diff --git a/packages/rocketchat-lib/server/lib/metrics.js b/packages/rocketchat-lib/server/lib/metrics.js index 1ee228dcda3cd..61ac0298bd2bb 100644 --- a/packages/rocketchat-lib/server/lib/metrics.js +++ b/packages/rocketchat-lib/server/lib/metrics.js @@ -144,10 +144,17 @@ app.use('/metrics', (req, res) => { const server = http.createServer(app); let timer; -RocketChat.settings.get('Prometheus_Enabled', (key, value) => { - if (value === true) { +const updatePrometheusConfig = () => { + const port = RocketChat.settings.get('Prometheus_Port'); + const enabled = RocketChat.settings.get('Prometheus_Enabled'); + + if (port == null || enabled == null) { + return; + } + + if (enabled === true) { server.listen({ - port: RocketChat.settings.get('Prometheus_Port'), + port, host: process.env.BIND_IP || '0.0.0.0' }); timer = Meteor.setInterval(setPrometheusData, 5000); @@ -155,4 +162,7 @@ RocketChat.settings.get('Prometheus_Enabled', (key, value) => { server.close(); Meteor.clearInterval(timer); } -}); +}; + +RocketChat.settings.get('Prometheus_Enabled', updatePrometheusConfig); +RocketChat.settings.get('Prometheus_Port', updatePrometheusConfig);