diff --git a/libraries/metrics/index.js b/libraries/metrics/index.js index 03357da193..238cf5ab81 100644 --- a/libraries/metrics/index.js +++ b/libraries/metrics/index.js @@ -30,6 +30,7 @@ function initialize(appName, opts = {}) { appName = appName || DEFAULT_APP_NAME configure({ ...opts, appName }) collectDefaultMetrics({ timeout: 5000, prefix: '' }) + promWrapper.setupSweeping() console.log(`ENABLE_TRACE_AGENT set to ${process.env.ENABLE_TRACE_AGENT}`) if (process.env.ENABLE_TRACE_AGENT === 'true') { diff --git a/libraries/metrics/prom_wrapper.js b/libraries/metrics/prom_wrapper.js index 57ddf0e2ac..9fe3407346 100644 --- a/libraries/metrics/prom_wrapper.js +++ b/libraries/metrics/prom_wrapper.js @@ -138,12 +138,15 @@ class MetricWrapper { } } -if (!PromWrapper.sweepRegistered) { +let sweepingInterval +PromWrapper.setupSweeping = function() { + if (sweepingInterval) { + clearInterval(sweepingInterval) + } if (process.env.DEBUG_METRICS) { console.log('Registering sweep method') } - PromWrapper.sweepRegistered = true - setInterval(function() { + sweepingInterval = setInterval(function() { if (PromWrapper.ttlInMinutes) { if (process.env.DEBUG_METRICS) { console.log('Sweeping metrics') @@ -153,6 +156,9 @@ if (!PromWrapper.sweepRegistered) { }) } }, 60000) + + const Metrics = require('./index') + Metrics.registerDestructor(() => clearInterval(sweepingInterval)) } module.exports = PromWrapper