-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[performance] enable journey run against cloud deployments #156720
Changes from all commits
588f9ee
2dcebd9
59c8e03
6e0aa1e
2fab722
64b7db0
a1f5395
c88798f
420bba7
a4eb7bb
aeefdcb
1ba73fb
99c2d3c
6392bde
c22876d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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`: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Advanced Edit" link wont be visible until "Edit" button is clicked. we could start the sentence like: Navigate to |
||
|
||
``` | ||
"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`: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Advanced Edit" link wont be visible until "Edit" button is clicked. we could start the sentence like: Navigate to |
||
|
||
``` | ||
"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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can the above kibana and elastic settings be changed together? In such way, the cluster is only needed to be restarted once. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, it is. Originally I thought it is easier to re-configure in steps to check if deployment still healthy. But since it is expected to work, I agree we better do it with 1 step and only single deployment restart makes things faster. |
||
|
||
### 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` | ||
``` | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a minimum setting (RAM/zones) for Kibana? or the default kibana setting enough?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think deployment size is up to each team to decide as we probably would like to test different ones and compare. We might define some defaults later.