[monitoring] only create license check if separate monitoring cluster (#33590)
This commit is contained in:
parent
ed2874bf54
commit
4d60e86287
|
@ -7,7 +7,7 @@
|
||||||
import expect from 'expect.js';
|
import expect from 'expect.js';
|
||||||
import sinon from 'sinon';
|
import sinon from 'sinon';
|
||||||
import { get, noop } from 'lodash';
|
import { get, noop } from 'lodash';
|
||||||
import { exposeClient } from '../instantiate_client';
|
import { exposeClient, hasMonitoringCluster } from '../instantiate_client';
|
||||||
|
|
||||||
function getMockServerFromConnectionUrl(monitoringClusterUrl) {
|
function getMockServerFromConnectionUrl(monitoringClusterUrl) {
|
||||||
const server = {
|
const server = {
|
||||||
|
@ -136,4 +136,16 @@ describe('Instantiate Client', () => {
|
||||||
expect(createClientOptions.password).to.eql('monitoring-p@ssw0rd!-internal-test');
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -15,28 +15,22 @@ import { LOGGING_TAG } from '../../common/constants';
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export function exposeClient(server) {
|
export function exposeClient(server) {
|
||||||
const monitoringEsConfig = server.config().get('xpack.monitoring.elasticsearch');
|
const config = hasMonitoringCluster(server) ? 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 cluster = server.plugins.elasticsearch.createCluster('monitoring', {
|
const cluster = server.plugins.elasticsearch.createCluster('monitoring', {
|
||||||
...config,
|
...config,
|
||||||
plugins: [monitoringBulk],
|
plugins: [monitoringBulk],
|
||||||
logQueries: Boolean(monitoringEsConfig.logQueries),
|
logQueries: Boolean(config.logQueries),
|
||||||
});
|
});
|
||||||
|
|
||||||
server.events.on('stop', bindKey(cluster, 'close'));
|
server.events.on('stop', bindKey(cluster, 'close'));
|
||||||
|
const configSource = hasMonitoringCluster(server) ? 'monitoring' : 'production';
|
||||||
server.log([LOGGING_TAG, 'es-client'], `config sourced from: ${configSource} cluster`);
|
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);
|
export const instantiateClient = once(exposeClient);
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { checkLicenseGenerator } from './cluster_alerts/check_license';
|
import { checkLicenseGenerator } from './cluster_alerts/check_license';
|
||||||
|
import { hasMonitoringCluster } from './es_client/instantiate_client';
|
||||||
import { LOGGING_TAG } from '../common/constants';
|
import { LOGGING_TAG } from '../common/constants';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -12,11 +13,10 @@ import { LOGGING_TAG } from '../common/constants';
|
||||||
*/
|
*/
|
||||||
export const initMonitoringXpackInfo = async server => {
|
export const initMonitoringXpackInfo = async server => {
|
||||||
const config = server.config();
|
const config = server.config();
|
||||||
const xpackInfoOptions = {
|
const xpackInfo = hasMonitoringCluster(server) ? server.plugins.xpack_main.createXPackInfo({
|
||||||
clusterSource: 'monitoring',
|
clusterSource: 'monitoring',
|
||||||
pollFrequencyInMillis: config.get('xpack.monitoring.xpack_api_polling_frequency_millis')
|
pollFrequencyInMillis: config.get('xpack.monitoring.xpack_api_polling_frequency_millis')
|
||||||
};
|
}) : server.plugins.xpack_main.info;
|
||||||
const xpackInfo = server.plugins.xpack_main.createXPackInfo(xpackInfoOptions);
|
|
||||||
|
|
||||||
xpackInfo.feature('monitoring').registerLicenseCheckResultsGenerator(checkLicenseGenerator);
|
xpackInfo.feature('monitoring').registerLicenseCheckResultsGenerator(checkLicenseGenerator);
|
||||||
server.expose('info', xpackInfo);
|
server.expose('info', xpackInfo);
|
||||||
|
|
Loading…
Reference in a new issue