diff --git a/x-pack/plugins/monitoring/server/es_client/__tests__/instantiate_client.js b/x-pack/plugins/monitoring/server/es_client/__tests__/instantiate_client.js index bb11902f1ff6..6ebd3fb7fd05 100644 --- a/x-pack/plugins/monitoring/server/es_client/__tests__/instantiate_client.js +++ b/x-pack/plugins/monitoring/server/es_client/__tests__/instantiate_client.js @@ -7,7 +7,7 @@ import expect from 'expect.js'; import sinon from 'sinon'; import { get, noop } from 'lodash'; -import { exposeClient } from '../instantiate_client'; +import { exposeClient, hasMonitoringCluster } from '../instantiate_client'; function getMockServerFromConnectionUrl(monitoringClusterUrl) { const server = { @@ -136,4 +136,16 @@ describe('Instantiate Client', () => { expect(createClientOptions.password).to.eql('monitoring-p@ssw0rd!-internal-test'); }); }); + + describe('hasMonitoringCluster', () => { + it('returns true if monitoring is configured', () => { + const server = getMockServerFromConnectionUrl('http://monitoring-cluster.test:9200'); // pass null for URL to create the client using prod config + expect(hasMonitoringCluster(server)).to.be(true); + }); + + it('returns false if monitoring is not configured', () => { + const server = getMockServerFromConnectionUrl(null); + expect(hasMonitoringCluster(server)).to.be(false); + }); + }); }); diff --git a/x-pack/plugins/monitoring/server/es_client/instantiate_client.js b/x-pack/plugins/monitoring/server/es_client/instantiate_client.js index c52c1b3aa829..a4930d9d1dc2 100644 --- a/x-pack/plugins/monitoring/server/es_client/instantiate_client.js +++ b/x-pack/plugins/monitoring/server/es_client/instantiate_client.js @@ -15,28 +15,22 @@ import { LOGGING_TAG } from '../../common/constants'; */ export function exposeClient(server) { - const monitoringEsConfig = server.config().get('xpack.monitoring.elasticsearch'); - - let config; - let configSource; - if (!Boolean(monitoringEsConfig.hosts && monitoringEsConfig.hosts.length)) { - config = {}; - configSource = 'production'; - } else { - config = { ...monitoringEsConfig }; - configSource = 'monitoring'; - } - + const config = hasMonitoringCluster(server) ? server.config().get('xpack.monitoring.elasticsearch') : {}; const cluster = server.plugins.elasticsearch.createCluster('monitoring', { ...config, plugins: [monitoringBulk], - logQueries: Boolean(monitoringEsConfig.logQueries), + logQueries: Boolean(config.logQueries), }); server.events.on('stop', bindKey(cluster, 'close')); - + const configSource = hasMonitoringCluster(server) ? 'monitoring' : 'production'; server.log([LOGGING_TAG, 'es-client'], `config sourced from: ${configSource} cluster`); } +export function hasMonitoringCluster(server) { + const hosts = server.config().get('xpack.monitoring.elasticsearch.hosts'); + return Boolean(hosts && hosts.length); +} + export const instantiateClient = once(exposeClient); diff --git a/x-pack/plugins/monitoring/server/init_monitoring_xpack_info.js b/x-pack/plugins/monitoring/server/init_monitoring_xpack_info.js index 152515fa3194..39d078c80092 100644 --- a/x-pack/plugins/monitoring/server/init_monitoring_xpack_info.js +++ b/x-pack/plugins/monitoring/server/init_monitoring_xpack_info.js @@ -5,6 +5,7 @@ */ import { checkLicenseGenerator } from './cluster_alerts/check_license'; +import { hasMonitoringCluster } from './es_client/instantiate_client'; import { LOGGING_TAG } from '../common/constants'; /* @@ -12,11 +13,10 @@ import { LOGGING_TAG } from '../common/constants'; */ export const initMonitoringXpackInfo = async server => { const config = server.config(); - const xpackInfoOptions = { + const xpackInfo = hasMonitoringCluster(server) ? server.plugins.xpack_main.createXPackInfo({ clusterSource: 'monitoring', pollFrequencyInMillis: config.get('xpack.monitoring.xpack_api_polling_frequency_millis') - }; - const xpackInfo = server.plugins.xpack_main.createXPackInfo(xpackInfoOptions); + }) : server.plugins.xpack_main.info; xpackInfo.feature('monitoring').registerLicenseCheckResultsGenerator(checkLicenseGenerator); server.expose('info', xpackInfo);