Skip to content
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

Introduce a new operation to benchmark the shard changes recovery api #722

Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
9e2cc41
feature: new synthetic source recovery challenge
salvatore-campagna Dec 17, 2024
3832110
fix: improve challenge description
salvatore-campagna Dec 17, 2024
112da4f
fix: remove underscore
salvatore-campagna Dec 17, 2024
67d45b7
fix: non-default challenge
salvatore-campagna Dec 17, 2024
f6aaf85
fix: default false
salvatore-campagna Dec 17, 2024
e2a6d71
fix: challenge name
salvatore-campagna Dec 17, 2024
790d1a5
Merge branch 'master' into feature/synthetic-source-recovery-challenge
salvatore-campagna Jan 10, 2025
75e06c3
fix: default security shard changes recovery target
salvatore-campagna Jan 14, 2025
27a172a
fix: default tsdb shard changes recovery target
salvatore-campagna Jan 14, 2025
617c34c
fix: default logs shard changes recovery target
salvatore-campagna Jan 14, 2025
e801b1c
fix: improve elastic/logs shard recovery
salvatore-campagna Jan 15, 2025
3067434
fix: simplify logs shard changes challenge
salvatore-campagna Jan 15, 2025
1e362d8
fix: replace challenge with new operation in existing challenge
salvatore-campagna Jan 15, 2025
0708b06
fix: move shard-recovery operation out of if statement
salvatore-campagna Jan 15, 2025
98e1bce
fix: p_recovery_target instead of recovery_target
salvatore-campagna Jan 15, 2025
c3cd16e
Merge branch 'master' into feature/synthetic-source-recovery-challenge
elasticmachine Jan 15, 2025
162450a
fix: gate execution of shard-recovery operation
salvatore-campagna Jan 15, 2025
7c8ace3
fix: update readme with include_shard_recovery_op param
salvatore-campagna Jan 15, 2025
23c1075
Revert "fix: update readme with include_shard_recovery_op param"
salvatore-campagna Jan 20, 2025
22da06f
Revert "fix: gate execution of shard-recovery operation"
salvatore-campagna Jan 20, 2025
7af8cff
Revert "fix: p_recovery_target instead of recovery_target"
salvatore-campagna Jan 20, 2025
421cd94
Revert "fix: move shard-recovery operation out of if statement"
salvatore-campagna Jan 20, 2025
3099736
Revert "fix: replace challenge with new operation in existing challenge"
salvatore-campagna Jan 20, 2025
8c01702
fix: add retention elase and remove max bucket setting
salvatore-campagna Jan 20, 2025
5bb4b58
fix: missing comma
salvatore-campagna Jan 20, 2025
a5b83cc
fix: use variable name with default
salvatore-campagna Jan 20, 2025
3d51874
fix: reduce warmup and iterations
salvatore-campagna Jan 20, 2025
cc9efd9
fix: increase warmup and iterations
salvatore-campagna Jan 20, 2025
40aef67
fix: serverless markers
salvatore-campagna Jan 20, 2025
c052cef
fix: move misplaced comma
salvatore-campagna Jan 21, 2025
4977014
fix: move misplaced comma
salvatore-campagna Jan 21, 2025
7c48efd
fix: index mode only for tsdb
salvatore-campagna Jan 21, 2025
4ab1173
fix: remove post ingest sleep
salvatore-campagna Jan 21, 2025
e83c1de
fix: remove condition on serverless operator
salvatore-campagna Jan 21, 2025
8dd4f73
fix: move add-retention-lease before indexing
salvatore-campagna Jan 22, 2025
00eb801
fix: remove misplaced commas
salvatore-campagna Jan 22, 2025
9111582
fix: tsdb missing comma
salvatore-campagna Jan 22, 2025
1d5e905
fix: further simplify synthetic-source-recovery challenge
salvatore-campagna Jan 22, 2025
0422faf
fix: typo target instead of tagret
salvatore-campagna Jan 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions elastic/logs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,11 @@ The following parameters are available:
* `synthetic_source_keep` (default: unset): If specified, configures the `index.mapping.synthetic_source_keep` index setting.
* `source_mode` (default: unset) - Specifies the source mode to be used.
* `use_synthetic_source_recovery` (default: unset): Whether synthetic recovery source will be used.
* `recovery_target` (required) - The target index or data stream for fetching shard changes via the recovery API.
* `recovery_from_seq_no` (default: `0`) - The sequence number from which to start fetching translog operations.
* `recovery_poll_timeout` (default: `1m`) - The maximum time to wait for additional translog operations before returning an empty result.
* `recovery_max_batch_size` (default: `32MB`) - The maximum estimated size for the batch of translog operations to return.
* `recovery_max_operations_count` (default: `1048576`) - The maximum number of translog operations to return in a single batch.

### Data Download Parameters

Expand Down
19 changes: 17 additions & 2 deletions elastic/logs/challenges/logging-querying.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,24 @@
"param-source": "create-datastream-source"
}
}
{%- endif -%}{# non-serverless-index-statistics-marker-end #}
,
{%- endif -%}{# non-serverless-index-statistics-marker-end #},
{% endif %}
{
"name": "shard-recovery",
"operation": {
"operation-type": "raw-request",
"path": {{ "/%s/ccr/shard_changes" | format(p_recovery_target) | tojson }},
"method": "GET",
"request-params": {
"from_seq_no": {{ p_recovery_from_seq_no | tojson }},
"max_batch_size": {{ p_recovery_max_batch_size | tojson }},
"poll_timeout": {{ p_recovery_poll_timeout | tojson }},
"max_operations_count": {{ p_recovery_max_operations_count | tojson }}
}
},
"warmup-iterations": 10,
"iterations": 100
},
{
"operation": "discovery-search-request-size-100",
"clients": 1,
Expand Down
6 changes: 6 additions & 0 deletions elastic/logs/track.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@
{% set p_dsl_default_rollover = (dsl_default_rollover | default(false) ) %}
{% set p_skip_fleet_globals = (skip_fleet_globals | default(false) ) %}

{% set p_recovery_target = (recovery_target | default('logs-k8-application.log-default') ) %}
martijnvg marked this conversation as resolved.
Show resolved Hide resolved
{% set p_recovery_from_seq_no = (recovery_seq_no | default(0) ) %}
{% set p_recovery_max_batch_size = (recovery_max_batch_size | default ("32MB") ) %}
{% set p_recovery_poll_timeout = (recovery_poll_timeout | default("1m")) %}
{% set p_recovery_max_operations_count = (recovery_max_operations_count | default(1048576)) %}

{% set p_worker_threads_enabled = (worker_threads_enabled | default(true)) %}

{% set es_version = "7.13.2" %}
Expand Down
5 changes: 5 additions & 0 deletions elastic/security/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@ The following parameters are available:
* `synthetic_source_keep` (default: unset): If specified, configures the `index.mapping.synthetic_source_keep` index setting.
* `source_mode` (default: unset) - Specifies the source mode to be used.
* `use_synthetic_source_recovery` (default: unset): Whether synthetic recovery source will be used.
* `recovery_target` (required) - The target index or data stream for fetching shard changes via the recovery API.
* `recovery_from_seq_no` (default: `0`) - The sequence number from which to start fetching translog operations.
* `recovery_poll_timeout` (default: `1m`) - The maximum time to wait for additional translog operations before returning an empty result.
* `recovery_max_batch_size` (default: `32MB`) - The maximum estimated size for the batch of translog operations to return.
* `recovery_max_operations_count` (default: `1048576`) - The maximum number of translog operations to return in a single batch.

### Data Generation Parameters

Expand Down
16 changes: 16 additions & 0 deletions elastic/security/challenges/security-indexing-querying.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,22 @@
"operation": "refresh"
},
{%- endif %}
{
"name": "shard-recovery",
"operation": {
"operation-type": "raw-request",
"path": {{ "/%s/ccr/shard_changes" | format(p_recovery_target) | tojson }},
"method": "GET",
"request-params": {
"from_seq_no": {{ p_recovery_from_seq_no | tojson }},
"max_batch_size": {{ p_recovery_max_batch_size | tojson }},
"poll_timeout": {{ p_recovery_poll_timeout | tojson }},
"max_operations_count": {{ p_recovery_max_operations_count | tojson }}
}
},
"warmup-iterations": 10,
"iterations": 100
},
{
"name": "kibana-queries",
"parallel": {
Expand Down
5 changes: 5 additions & 0 deletions elastic/security/track.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
{% set p_number_of_replicas = (number_of_replicas | default(1)) %}
{% set p_skip_delete_component_template = (skip_delete_component_template | default(false) ) %}
{% set p_logs_endpoint_from_kibana = (logs_endpoint_from_kibana | default(false) ) %}
{% set p_recovery_from_seq_no = (recovery_seq_no | default(0) ) %}
{% set p_recovery_target = ( recovery_tagret | default('filebeat-default') ) %}
{% set p_recovery_max_batch_size = (recovery_max_batch_size | default ("32MB") ) %}
{% set p_recovery_poll_timeout = (recovery_poll_timeout | default("1m")) %}
{% set p_recovery_max_operations_count = (recovery_max_operations_count | default(1048576)) %}
{% set p_include_non_serverless_index_settings = (include_non_serverless_index_settings | default(build_flavor != "serverless")) %}
{% set p_integration_ratios = (integration_ratios | default({
"auditbeat": {
Expand Down
5 changes: 5 additions & 0 deletions tsdb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,11 @@ This track allows to overwrite the following parameters using `--track-params`:
* `document_ids`: documentd IDs to use for search, get and mget apis in the `low-latency` challenge. If empty, a default set of 4 values is used.
* `synthetic_source_keep` (default: unset): If specified, configures the `index.mapping.synthetic_source_keep` index setting.
* `use_synthetic_source_recovery` (default: unset): Whether synthetic recovery source will be used.
* `recovery_target` (required) - The target index or data stream for fetching shard changes via the recovery API.
* `recovery_from_seq_no` (default: `0`) - The sequence number from which to start fetching translog operations.
* `recovery_poll_timeout` (default: `1m`) - The maximum time to wait for additional translog operations before returning an empty result.
* `recovery_max_batch_size` (default: `32MB`) - The maximum estimated size for the batch of translog operations to return.
* `recovery_max_operations_count` (default: `1048576`) - The maximum number of translog operations to return in a single batch.

### License

Expand Down
16 changes: 16 additions & 0 deletions tsdb/challenges/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,22 @@
"name": "refresh-after-force-merge",
"operation": "refresh"
},
{
"name": "shard-recovery",
"operation": {
"operation-type": "raw-request",
"path": {{ "/%s/ccr/shard_changes" | format(p_recovery_target) | tojson }},
"method": "GET",
"request-params": {
"from_seq_no": {{ p_recovery_from_seq_no | tojson }},
"max_batch_size": {{ p_recovery_max_batch_size | tojson }},
"poll_timeout": {{ p_recovery_poll_timeout | tojson }},
"max_operations_count": {{ p_recovery_max_operations_count | tojson }}
}
},
"warmup-iterations": 10,
"iterations": 100
},
{# serverless-post-ingest-sleep-marker-start #}{%- if post_ingest_sleep|default(false) -%}
{
"name": "post-ingest-sleep",
Expand Down
6 changes: 6 additions & 0 deletions tsdb/track.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
{% import "rally.helpers" as rally with context %}

{% set p_recovery_target = ( recovery_tagret | default('tsdb') ) %}
{% set p_recovery_from_seq_no = (recovery_seq_no | default(0) ) %}
{% set p_recovery_max_batch_size = (recovery_max_batch_size | default ("32MB") ) %}
{% set p_recovery_poll_timeout = (recovery_poll_timeout | default("1m")) %}
{% set p_recovery_max_operations_count = (recovery_max_operations_count | default(1048576)) %}

{
"version": 2,
"description": "metricbeat information for elastic-app k8s cluster",
Expand Down
Loading