diff --git a/elastic/security/README.md b/elastic/security/README.md index cb79b10c7..6c4eba320 100644 --- a/elastic/security/README.md +++ b/elastic/security/README.md @@ -99,6 +99,7 @@ The following parameters are available: * `number_of_replicas` (default: 1) - The number of replicas to set per Data Stream. The same value is used for all Data Streams. * `bulk_indexing_clients` (default: 8) - The number of clients issuing indexing requests. * `bulk_size` (default: 50) - The number of documents to send per indexing request. +* `force_merge_max_num_segments` (default: unset): An integer specifying the max amount of segments the force-merge operation should use. Only supported in `security-indexing-querying` track. ### Querying parameters diff --git a/elastic/security/challenges/security-indexing-querying.json b/elastic/security/challenges/security-indexing-querying.json index 9e844ad12..937332182 100644 --- a/elastic/security/challenges/security-indexing-querying.json +++ b/elastic/security/challenges/security-indexing-querying.json @@ -18,6 +18,35 @@ "clients": {{ p_bulk_indexing_clients }}, "ignore-response-error-level": "{{error_level | default('non-fatal')}}" }, + {%- if force_merge_max_num_segments is defined %} + { + "name": "refresh-after-index", + "operation": "refresh" + }, + { + "operation": { + "operation-type": "force-merge", + "request-timeout": 36000, + "max-num-segments": {{ force_merge_max_num_segments | tojson }} + } + }, + { + "name": "wait-until-merge-finish", + "operation": { + "operation-type": "index-stats", + "condition": { + "path": "_all.total.merges.current", + "expected-value": 0 + }, + "retry-until-success": true, + "include-in-reporting": false + } + }, + { + "name": "refresh-after-force-merge", + "operation": "refresh" + }, + {%- endif %} { "name": "kibana-queries", "parallel": {