diff --git a/lib/metrics.js b/lib/metrics.js index d370d0ace3..5fdaf79f33 100644 --- a/lib/metrics.js +++ b/lib/metrics.js @@ -8,21 +8,16 @@ const { FEATURE_ARCHIVED, FEATURE_REVIVED, } = require('./event-type'); -const { version } = require('./routes/api-def'); const THREE_HOURS = 3 * 60 * 60 * 1000; -exports.startMonitoring = ( - enable, - eventBus, - eventStore, - clientMetricsStore, - featureToggleStore, -) => { - if (!enable) { +exports.startMonitoring = ({ serverMetrics, eventBus, stores, version }) => { + if (!serverMetrics) { return; } + const { eventStore, clientMetricsStore, featureToggleStore } = stores; + client.collectDefaultMetrics(); const requestDuration = new client.Summary({ diff --git a/lib/metrics.test.js b/lib/metrics.test.js index 290668a5fe..3d5e425f08 100644 --- a/lib/metrics.test.js +++ b/lib/metrics.test.js @@ -15,13 +15,17 @@ test.before(() => { const featureToggleStore = { count: () => 123, }; - startMonitoring( - true, + const config = { + serverMetrics: true, eventBus, - eventStore, - clientMetricsStore, - featureToggleStore, - ); + stores: { + eventStore, + clientMetricsStore, + featureToggleStore, + }, + version: '3.4.1', + }; + startMonitoring(config); }); test('should collect metrics for requests', t => { diff --git a/lib/options.js b/lib/options.js index 775c0ac7c8..cc2414bc9f 100644 --- a/lib/options.js +++ b/lib/options.js @@ -5,6 +5,7 @@ const parseDbUrl = require('parse-database-url'); const merge = require('deepmerge'); const { publicFolder } = require('unleash-frontend'); const { defaultLogProvider, validateLogProvider } = require('./logger'); +const version = require('./util/version'); const THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000; @@ -54,6 +55,7 @@ function defaultOptions() { start: true, keepAliveTimeout: 60 * 1000, headersTimeout: 61 * 1000, + version, }; } diff --git a/lib/routes/admin-api/api-def.json b/lib/routes/admin-api/api-def.json index ed0fbd5492..7198b0dbc1 100644 --- a/lib/routes/admin-api/api-def.json +++ b/lib/routes/admin-api/api-def.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "links": { "feature-toggles": { "uri": "/api/admin/features" diff --git a/lib/routes/admin-api/config.js b/lib/routes/admin-api/config.js index 6d2e068dd1..5c959d0a18 100644 --- a/lib/routes/admin-api/config.js +++ b/lib/routes/admin-api/config.js @@ -5,7 +5,7 @@ const Controller = require('../controller'); class ConfigController extends Controller { constructor(config) { super(config); - this.uiConfig = config.ui; + this.uiConfig = { ...config.ui, version: config.version }; this.get('/', this.getUIConfig); } diff --git a/lib/routes/api-def.js b/lib/routes/api-def.js index 7f1c60f32e..d517fe8433 100644 --- a/lib/routes/api-def.js +++ b/lib/routes/api-def.js @@ -1,11 +1,8 @@ 'use strict'; -// export module version -require('pkginfo')(module, 'version'); - -const { version } = module.exports; const clientApiDef = require('./client-api/api-def.json'); const adminApiDef = require('./admin-api/api-def.json'); +const version = require('../util/version'); const apiDef = { name: 'unleash-server', diff --git a/lib/routes/client-api/api-def.json b/lib/routes/client-api/api-def.json index 6fed395db3..d280a114cb 100644 --- a/lib/routes/client-api/api-def.json +++ b/lib/routes/client-api/api-def.json @@ -1,5 +1,5 @@ { - "version": 2, + "version": 3, "links": { "feature-toggles": { "uri": "/api/client/features" diff --git a/lib/server-impl.js b/lib/server-impl.js index cd2539d3fe..a14957daf1 100644 --- a/lib/server-impl.js +++ b/lib/server-impl.js @@ -31,13 +31,7 @@ async function createApp(options) { }; const app = getApp(config); - startMonitoring( - options.serverMetrics, - eventBus, - stores.eventStore, - stores.clientMetricsStore, - stores.featureToggleStore, - ); + startMonitoring(config); if (typeof config.eventHook === 'function') { addEventHook(config.eventHook, stores.eventStore); diff --git a/lib/util/version.js b/lib/util/version.js new file mode 100644 index 0000000000..85dd99f118 --- /dev/null +++ b/lib/util/version.js @@ -0,0 +1,7 @@ +'use strict'; + +// export module version +require('pkginfo')(module, 'version'); + +const { version } = module.exports; +module.exports = version;