From bf8f1306b30b3ff20fd9ea98424327f9040e3fed Mon Sep 17 00:00:00 2001 From: MadameSheema Date: Wed, 13 Nov 2019 18:19:25 +0100 Subject: [PATCH 1/3] [SIEM] Events viewer fixes (#50175) * updates KQL_SEARCH_BAR locator * updates HEADER_SUBTITLE locator * waits for the events to be loaded --- .../siem/cypress/integration/lib/events_viewer/helpers.ts | 5 +++++ .../siem/cypress/integration/lib/events_viewer/selectors.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/helpers.ts b/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/helpers.ts index e611744754912..02a80f6c0329c 100644 --- a/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/helpers.ts +++ b/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/helpers.ts @@ -6,12 +6,17 @@ import { EVENTS_VIEWER_FIELDS_BUTTON, KQL_SEARCH_BAR } from './selectors'; import { FIELDS_BROWSER_CONTAINER } from '../fields_browser/selectors'; +import { SERVER_SIDE_EVENT_COUNT } from '../timeline/selectors'; import { DEFAULT_TIMEOUT } from '../util/helpers'; /** Opens the eventsViewer Field Browser */ export const openEventsViewerFieldsBrowser = () => { cy.get(EVENTS_VIEWER_FIELDS_BUTTON, { timeout: DEFAULT_TIMEOUT }).click({ force: true }); + cy.get(SERVER_SIDE_EVENT_COUNT, { timeout: DEFAULT_TIMEOUT }) + .invoke('text') + .should('not.equal', '0'); + cy.get(FIELDS_BROWSER_CONTAINER).should('exist'); }; diff --git a/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/selectors.ts b/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/selectors.ts index c6cf4d455fb59..0e3717feef7ad 100644 --- a/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/selectors.ts +++ b/x-pack/legacy/plugins/siem/cypress/integration/lib/events_viewer/selectors.ts @@ -11,10 +11,10 @@ export const EVENTS_VIEWER_PANEL = '[data-test-subj="events-viewer-panel"]'; export const EVENTS_VIEWER_FIELDS_BUTTON = `${EVENTS_VIEWER_PANEL} [data-test-subj="show-field-browser-gear"]`; /** The KQL search bar that exists at the top of most pages */ -export const KQL_SEARCH_BAR = '[data-test-subj="kqlInput"]'; +export const KQL_SEARCH_BAR = '[data-test-subj="queryInput"]'; /** The Events Viewer Showing N events header subtitle */ -export const HEADER_SUBTITLE = `${EVENTS_VIEWER_PANEL} [data-test-subj="subtitle"]`; +export const HEADER_SUBTITLE = `${EVENTS_VIEWER_PANEL} [data-test-subj="header-panel-subtitle"]`; /** The inspect query modal */ export const INSPECT_MODAL = '[data-test-subj="modal-inspect-euiModal"]'; From aca8ddb4f00287464b67c7858ebbd8ef1dfaa300 Mon Sep 17 00:00:00 2001 From: Chris Roberson Date: Wed, 13 Nov 2019 12:42:40 -0500 Subject: [PATCH 2/3] [Monitoring] Fix logstash pipelines page in multi-cluster environment (#50166) * Ensure we pass in the clusterUuid * Add test --- .../logstash/pipelines/cluster_pipelines.js | 2 +- .../fixtures/multicluster_pipelines.json | 1 + .../apis/monitoring/logstash/index.js | 1 + .../logstash/multicluster_pipelines.js | 43 + .../data.json.gz | Bin 0 -> 18808 bytes .../mappings.json | 1591 +++++++++++++++++ 6 files changed, 1637 insertions(+), 1 deletion(-) create mode 100644 x-pack/test/api_integration/apis/monitoring/logstash/fixtures/multicluster_pipelines.json create mode 100644 x-pack/test/api_integration/apis/monitoring/logstash/multicluster_pipelines.js create mode 100644 x-pack/test/functional/es_archives/monitoring/logstash_pipelines_multicluster/data.json.gz create mode 100644 x-pack/test/functional/es_archives/monitoring/logstash_pipelines_multicluster/mappings.json diff --git a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/logstash/pipelines/cluster_pipelines.js b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/logstash/pipelines/cluster_pipelines.js index c55f8c19037d5..6e8243b72e6a0 100644 --- a/x-pack/legacy/plugins/monitoring/server/routes/api/v1/logstash/pipelines/cluster_pipelines.js +++ b/x-pack/legacy/plugins/monitoring/server/routes/api/v1/logstash/pipelines/cluster_pipelines.js @@ -67,7 +67,7 @@ export function logstashClusterPipelinesRoute(server) { } const { pageOfPipelines, totalPipelineCount } = - await getPaginatedPipelines(req, lsIndexPattern, {}, metricSet, pagination, sort, queryText); + await getPaginatedPipelines(req, lsIndexPattern, { clusterUuid }, metricSet, pagination, sort, queryText); // Just the IDs for the rest const pipelineIds = pageOfPipelines.map(pipeline => pipeline.id); diff --git a/x-pack/test/api_integration/apis/monitoring/logstash/fixtures/multicluster_pipelines.json b/x-pack/test/api_integration/apis/monitoring/logstash/fixtures/multicluster_pipelines.json new file mode 100644 index 0000000000000..1094e2b1a4004 --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/logstash/fixtures/multicluster_pipelines.json @@ -0,0 +1 @@ +{"pipelines":[{"id":"uno","metrics":{"throughput":{"bucket_size":"10 seconds","timeRange":{"min":1573485225266,"max":1573485425399},"metric":{"app":"logstash","field":"logstash_stats.pipelines.events.out","label":"Pipeline Throughput","description":"Number of events emitted per second by the Logstash pipeline at the outputs stage.","units":"e/s","format":"0,0.[00]","hasCalculation":true,"isDerivative":false},"data":[[1573485230000,0]]},"nodesCount":{"bucket_size":"10 seconds","timeRange":{"min":1573485225266,"max":1573485425399},"metric":{"app":"logstash","field":"logstash_stats.logstash.uuid","label":"Pipeline Node Count","description":"Number of nodes on which the Logstash pipeline is running.","units":"","format":"0,0.[00]","hasCalculation":true,"isDerivative":false},"data":[[1573485230000,1]]}},"latestThroughput":0,"latestNodesCount":1}],"clusterStatus":{"node_count":1,"events_in_total":0,"events_out_total":0,"avg_memory":1037959168,"avg_memory_used":203687512,"max_uptime":863288,"pipeline_count":1,"queue_types":{"memory":1,"persisted":0},"versions":["8.0.0"]},"totalPipelineCount":1} diff --git a/x-pack/test/api_integration/apis/monitoring/logstash/index.js b/x-pack/test/api_integration/apis/monitoring/logstash/index.js index d07e8a812ad57..6406942f02969 100644 --- a/x-pack/test/api_integration/apis/monitoring/logstash/index.js +++ b/x-pack/test/api_integration/apis/monitoring/logstash/index.js @@ -9,6 +9,7 @@ export default function ({ loadTestFile }) { loadTestFile(require.resolve('./overview')); loadTestFile(require.resolve('./nodes')); loadTestFile(require.resolve('./node_detail')); + loadTestFile(require.resolve('./multicluster_pipelines')); }); } diff --git a/x-pack/test/api_integration/apis/monitoring/logstash/multicluster_pipelines.js b/x-pack/test/api_integration/apis/monitoring/logstash/multicluster_pipelines.js new file mode 100644 index 0000000000000..bea09562bdb11 --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/logstash/multicluster_pipelines.js @@ -0,0 +1,43 @@ +/* + * 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. + */ + +import expect from '@kbn/expect'; +import fixture from './fixtures/multicluster_pipelines'; + +export default function ({ getService }) { + const supertest = getService('supertest'); + const esArchiver = getService('esArchiver'); + + describe('pipelines listing multicluster', () => { + const archive = 'monitoring/logstash_pipelines_multicluster'; + const timeRange = { + min: '2019-11-11T15:13:45.266Z', + max: '2019-11-11T15:17:05.399Z' + }; + const pagination = { + size: 10, + index: 0 + }; + + before('load archive', () => { + return esArchiver.load(archive); + }); + + after('unload archive', () => { + return esArchiver.unload(archive); + }); + + it('should get the pipelines', async () => { + const { body } = await supertest + .post('/api/monitoring/v1/clusters/hJS0FZ7wR9GGdYs8RNW8pw/logstash/pipelines') + .set('kbn-xsrf', 'xxx') + .send({ timeRange, pagination }) + .expect(200); + + expect(body).to.eql(fixture); + }); + }); +} diff --git a/x-pack/test/functional/es_archives/monitoring/logstash_pipelines_multicluster/data.json.gz b/x-pack/test/functional/es_archives/monitoring/logstash_pipelines_multicluster/data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..42d6d190db0cd39c659b97dd111f02dddfc5a4fc GIT binary patch literal 18808 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 Date: Wed, 13 Nov 2019 12:21:30 -0700 Subject: [PATCH 3/3] [Newsfeed/Lint] fix chained fn lint (#50515) --- src/plugins/newsfeed/public/lib/api.test.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/plugins/newsfeed/public/lib/api.test.ts b/src/plugins/newsfeed/public/lib/api.test.ts index b9707ff91b936..4383b9e0f7dab 100644 --- a/src/plugins/newsfeed/public/lib/api.test.ts +++ b/src/plugins/newsfeed/public/lib/api.test.ts @@ -631,10 +631,7 @@ describe('getApi', () => { .mockImplementationOnce(getHttpMockWithItems(successItems)); getApi(httpMock, configMock.newsfeed, '6.8.2') - .pipe( - take(4), - toArray() - ) + .pipe(take(4), toArray()) .subscribe(result => { expect(result).toMatchInlineSnapshot(` Array [