[Monitoring] Ensure setup mode work in a ccs environment (#54361)

* Ensure setup mode work in a ccs environment

* Missed this file
This commit is contained in:
Chris Roberson 2020-01-09 13:14:05 -05:00 committed by GitHub
parent 982df2e5a0
commit dfac5d894e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 48 additions and 5 deletions

View file

@ -13,9 +13,7 @@ import {
INDEX_ALERTS,
} from '../../../common/constants';
export function getIndexPatterns(server, additionalPatterns = {}) {
// wildcard means to search _all_ clusters
const ccs = '*';
export function getIndexPatterns(server, additionalPatterns = {}, ccs = '*') {
const config = server.config();
const esIndexPattern = prefixIndexPattern(config, INDEX_PATTERN_ELASTICSEARCH, ccs);
const kbnIndexPattern = prefixIndexPattern(config, INDEX_PATTERN_KIBANA, ccs);

View file

@ -34,6 +34,7 @@ export function clusterSetupStatusRoute(server) {
skipLiveData: Joi.boolean().default(false),
}),
payload: Joi.object({
ccs: Joi.string().optional(),
timeRange: Joi.object({
min: Joi.date().required(),
max: Joi.date().required(),
@ -49,7 +50,7 @@ export function clusterSetupStatusRoute(server) {
// the monitoring data. `try/catch` makes it a little more explicit.
try {
await verifyMonitoringAuth(req);
const indexPatterns = getIndexPatterns(server);
const indexPatterns = getIndexPatterns(server, {}, req.payload.ccs);
status = await getCollectionStatus(
req,
indexPatterns,

View file

@ -34,6 +34,7 @@ export function nodeSetupStatusRoute(server) {
skipLiveData: Joi.boolean().default(false),
}),
payload: Joi.object({
ccs: Joi.string().optional(),
timeRange: Joi.object({
min: Joi.date().required(),
max: Joi.date().required(),
@ -49,7 +50,7 @@ export function nodeSetupStatusRoute(server) {
// the monitoring data. `try/catch` makes it a little more explicit.
try {
await verifyMonitoringAuth(req);
const indexPatterns = getIndexPatterns(server);
const indexPatterns = getIndexPatterns(server, {}, req.payload.ccs);
status = await getCollectionStatus(
req,
indexPatterns,

View file

@ -0,0 +1,42 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
export default function({ getService }) {
const supertest = getService('supertest');
const esArchiver = getService('esArchiver');
describe('ccs', () => {
const archive = 'monitoring/setup/collection/detect_apm';
const timeRange = {
min: '2019-04-16T00:00:00.741Z',
max: '2019-04-16T23:59:59.741Z',
};
before('load archive', () => {
return esArchiver.load(archive);
});
after('unload archive', () => {
return esArchiver.unload(archive);
});
it('should not fail with a ccs parameter for cluster', async () => {
await supertest
.post('/api/monitoring/v1/setup/collection/cluster?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange, ccs: '*' })
.expect(200);
});
it('should not fail with a ccs parameter for node', async () => {
await supertest
.post('/api/monitoring/v1/setup/collection/node/123?skipLiveData=true')
.set('kbn-xsrf', 'xxx')
.send({ timeRange, ccs: '*' })
.expect(200);
});
});
}

View file

@ -16,5 +16,6 @@ export default function({ loadTestFile }) {
loadTestFile(require.resolve('./detect_logstash_management'));
loadTestFile(require.resolve('./detect_apm'));
loadTestFile(require.resolve('./security'));
loadTestFile(require.resolve('./ccs'));
});
}