[performance] enable journey run against cloud deployments (#156720)

## Summary

This PR adds changes and instructions how to run existing performance
journeys against ESS instances.

As previously discussed with @pheyos , there are few manual steps to be
done before running the actual journey:
1. Create cloud deployment and re-configure it the way APM traces are
reported the monitoring cluster
2. Check out the branch matching deployment version (main ->
8.9.0-SNAPSHOT), create user with `superuser` role (we don't test
functional features, only performance metrics)

Then you can run the journey like a regular cloud test suite:
```
export TEST_KIBANA_URL=https://<username>:<password>@<kibana_url>
export TEST_ES_URL=https://<username>:<password>@j<elasticsearch_url>:<port>
export TEST_CLOUD=1
node scripts/functional_test_runner.js --config x-pack/performance/journeys/$YOUR_JOURNEY_NAME.ts
```

<img width="1357" alt="image"
src="https://user-images.githubusercontent.com/10977896/236499836-2738fecb-a5a9-4e58-a10b-915b962af037.png">

---------

Co-authored-by: Jon <jon@budzenski.me>
This commit is contained in:
Dzmitry Lemechko 2023-05-09 05:35:43 +02:00 committed by GitHub
parent 967b88710d
commit e55a92eab0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 128 additions and 10 deletions

View file

@ -0,0 +1,93 @@
---
id: kibDevTutorialRunningPerformanceJourneyInCloud
slug: /kibana-dev-docs/tutorial/performance/running_performance_journey_in_cloud
title: Running Performance Journey In Cloud
summary: Learn how to run performance journey against Cloud cluster
date: 2023-05-04
tags: ['kibana', 'onboarding', 'setup', 'performance', 'development', 'telemetry']
---
## Overview
As a way to better understand user experience with Kibana in cloud, we support running performance journeys against
Cloud deployments.
The process takes a few steps:
- Create a cloud deployment
- Re-configure deployment with APM enabled and reporting metrics to the monitoring cluster
- Create a user with `superuser` role to run tests with
- Checkout the branch that matches your cloud deployment version
- Run the performance journey
### Re-configure deployment for Kibana and Elasticsearch
We use [kibana-ops-e2e-perf](https://kibana-ops-e2e-perf.kb.us-central1.gcp.cloud.es.io/) cluster to monitor performance testing.
If you would like to report APM metrics to this cluster, copy `SECRET_TOKEN` and `SERVER_URL` values from [packages/kbn-journeys/journey/journey_apm_config.ts](https://github.com/elastic/kibana/blob/60c82765779419d356a131e212682b69b035804b/packages/kbn-journeys/journey/journey_apm_config.ts#L10-L11)
#### Change Elasticsearch configuration
In the ESS Admin Console, find your deployment and navigate to `Security` page. Click `Add Settings` under `Elasticsearch keystore` and add new entry:
```
Setting name: tracing.apm.secret_token
Secret: <SECRET_TOKEN>
```
Navigate to `Advanced Edit` page and change `Deployment Configuration` by adding the following JSON object to `resources.elasticsearch.plan.elasticsearch`:
```
"user_settings_override_json": {
"tracing.apm.enabled": "true",
"tracing.apm.environment": "development",
"tracing.apm.agent.service_name": "elasticsearch",
"tracing.apm.agent.server_url": "<SERVER_URL>",
"tracing.apm.agent.metrics_interval": "120s",
"tracing.apm.agent.transaction_sample_rate": "1"
}
```
Save changes and make sure cluster is restarted successfully.
#### Change Kibana configuration
Navigate to `Advanced Edit` page and change `Deployment Configuration` by adding the following JSON object to `resources.kibana.plan.kibana`:
```
"user_settings_override_json": {
"elastic.apm.active": true,
"elastic.apm.breakdownMetrics": false,
"elastic.apm.captureBody": "all",
"elastic.apm.captureRequestHeaders": "true",
"elastic.apm.captureSpanStackTraces": false,
"elastic.apm.centralConfig": false,
"elastic.apm.contextPropagationOnly": "false",
"elastic.apm.environment": "development",
"elastic.apm.globalLabels.deploymentId": "<DEPLOYMENT_ID>",
"elastic.apm.globalLabels.journeyName": "<YOUR_JOURNEY_NAME>",
"elastic.apm.longFieldMaxLength": "300000",
"elastic.apm.metricsInterval": "120s",
"elastic.apm.propagateTracestate": true,
"elastic.apm.sanitizeFieldNames": "password,passwd,pwd,secret,*key,*token*,*session*,*credit*,*card*,*auth*,set-cookie,pw,pass,connect.sid",
"elastic.apm.secretToken": "<SECRET_TOKEN>",
"elastic.apm.serverUrl": "<SERVER_URL>",
"elastic.apm.transactionSampleRate": 1
}
```
Note: DEPLOYMENT_ID and YOUR_JOURNEY_NAME values are optional labels to find the APM traces for your run.
Save changes and make sure cluster is restarted successfully.
### Run the journey
Make sure you have created user with `superuser` role and the Kibana repo branch is matching your deployment version.
Set env variables to run FTR against your cloud deployment:
```
export TEST_KIBANA_URL=https://<username>:<password>@<kibana_url>
export TEST_ES_URL=https://<username>:<password>@<elasticsearch_url>:<port>
export TEST_CLOUD=1
```
Run your journey with the command:
```
node scripts/functional_test_runner.js --config x-pack/performance/journeys/$YOUR_JOURNEY_NAME.ts`
```