[kbn-journey] add journeys running Kibana server with http2 (#194732)

## Summary

This PR introduces two performance journey-replicas of the existing
`ecommerce_dashboard` and `data_stress_test_lens` executed with the
Kibana server running HTTP/2.

The goal is to monitor and compare performance between HTTP/1.1 and
HTTP/2

perf pipeline is triggered
https://buildkite.com/elastic/kibana-single-user-performance/builds/14561

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Dzmitry Lemechko 2024-10-17 17:24:27 +02:00 committed by GitHub
parent 2a786b88a1
commit 77102c1854
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 70 additions and 0 deletions

View file

@ -39,6 +39,9 @@ disabled:
- x-pack/test/fleet_cypress/config.space_awareness.ts
- x-pack/test/fleet_cypress/visual_config.ts
# Default http2 config to use for performance journeys
- x-pack/performance/configs/http2_config.ts
defaultQueue: 'n2-4-spot'
enabled:
- test/accessibility/config.ts
@ -345,6 +348,7 @@ enabled:
- x-pack/test/usage_collection/config.ts
- x-pack/performance/journeys_e2e/aiops_log_rate_analysis.ts
- x-pack/performance/journeys_e2e/ecommerce_dashboard.ts
- x-pack/performance/journeys_e2e/ecommerce_dashboard_http2.ts
- x-pack/performance/journeys_e2e/ecommerce_dashboard_map_only.ts
- x-pack/performance/journeys_e2e/flight_dashboard.ts
- x-pack/performance/journeys_e2e/login.ts
@ -358,6 +362,7 @@ enabled:
- x-pack/performance/journeys_e2e/web_logs_dashboard_esql.ts
- x-pack/performance/journeys_e2e/web_logs_dashboard_dataview.ts
- x-pack/performance/journeys_e2e/data_stress_test_lens.ts
- x-pack/performance/journeys_e2e/data_stress_test_lens_http2.ts
- x-pack/performance/journeys_e2e/ecommerce_dashboard_saved_search_only.ts
- x-pack/performance/journeys_e2e/ecommerce_dashboard_tsvb_gauge_only.ts
- x-pack/performance/journeys_e2e/dashboard_listing_page.ts

View file

@ -47,6 +47,7 @@ const journeyTargetGroups: JourneyTargetGroups = {
maps: ['ecommerce_dashboard_map_only'],
ml: ['aiops_log_rate_analysis', 'many_fields_transform', 'tsdb_logs_data_visualizer'],
esql: ['many_fields_discover_esql', 'web_logs_dashboard_esql'],
http2: ['data_stress_test_lens_http2', 'ecommerce_dashboard_http2'],
};
const readFilesRecursively = (dir: string, callback: Function) => {

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import type { FtrConfigProviderContext } from '@kbn/test';
import { configureHTTP2 } from '@kbn/test-suites-src/common/configure_http2';
// eslint-disable-next-line import/no-default-export
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const xpackFunctionalConfig = await readConfigFile(
require.resolve('@kbn/test-suites-xpack/functional/config.base')
);
return configureHTTP2({
...xpackFunctionalConfig.getAll(),
});
}

View file

@ -0,0 +1,18 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { Journey } from '@kbn/journeys';
export const journey = new Journey({
kbnArchives: ['test/functional/fixtures/kbn_archiver/stress_test'],
esArchives: ['test/functional/fixtures/es_archiver/stress_test'],
ftrConfigPath: 'x-pack/performance/configs/http2_config.ts',
}).step('Go to dashboard', async ({ page, kbnUrl, kibanaServer, kibanaPage }) => {
await kibanaServer.uiSettings.update({ 'histogram:maxBars': 100 });
await page.goto(kbnUrl.get(`/app/dashboards#/view/92b143a0-2e9c-11ed-b1b6-a504560b392c`));
await kibanaPage.waitForVisualizations({ count: 1 });
});

View file

@ -0,0 +1,25 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { Journey } from '@kbn/journeys';
import { subj } from '@kbn/test-subj-selector';
export const journey = new Journey({
esArchives: ['x-pack/performance/es_archives/sample_data_ecommerce'],
kbnArchives: ['x-pack/performance/kbn_archives/ecommerce_no_map_dashboard'],
ftrConfigPath: 'x-pack/performance/configs/http2_config.ts',
})
.step('Go to Dashboards Page', async ({ page, kbnUrl, kibanaPage }) => {
await page.goto(kbnUrl.get(`/app/dashboards`));
await kibanaPage.waitForListViewTable();
})
.step('Go to Ecommerce Dashboard', async ({ page, kibanaPage }) => {
await page.click(subj('dashboardListingTitleLink-[eCommerce]-Revenue-Dashboard'));
await kibanaPage.waitForVisualizations({ count: 13 });
});

View file

@ -22,5 +22,6 @@
"@kbn/expect",
"@kbn/dev-utils",
"@kbn/apm-synthtrace-client",
"@kbn/test-suites-src",
]
}