[monitoring] only create license check if separate monitoring cluster (#33590)

This commit is contained in:
Jonathan Budzenski 2019-03-22 10:22:11 -05:00 committed by GitHub
parent ed2874bf54
commit 4d60e86287
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 18 deletions

View file

@ -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);
});
});
});

View file

@ -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);

View file

@ -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);