Update track-shared-logsdb-mode component template for elastic/logs and elastic/security tracks#1097
Conversation
…e when serverless_operator == true
|
I verified locally that this works by running:
|
| {% if index_mode %} | ||
| "index": { | ||
| "mode": {{ index_mode | tojson }} | ||
| {% if use_doc_values_skipper | default(true) %} |
There was a problem hiding this comment.
Moving this setting to the top, which avoids the if conditions when the add , in front if each setting. The currrent logic always prints the mapping.use_doc_values_skipper index setting.
There was a problem hiding this comment.
OK, that makes sense - but you need to be aware that you would not be able to use any other index settings, if the use_doc_values_skipper were to be set to false. You could extend the endif to the end of index settings, that way an invalid json couldnt be generated - I wonder though if we should try and investigate (outside of this PR), if there's a way we can make this easier - we have similar issues in other tracks, though we tend to get around it by setting the final item in index settings so it always is printed, thus you can include a comma at the end of other lines -> https://github.com/elastic/rally-tracks/blob/master/github_archive/index-template.json#L38
There was a problem hiding this comment.
I think I need to update this again, the use_doc_values_skipper isn't a serverless public setting.
I will add logic to conditionally add ,, like in the other file.
gareth-ellis
left a comment
There was a problem hiding this comment.
LGTM - it would be nice if we could find a way to avoid requiring certain parameters to be set in a certain way to ensure we end up with valid json. Theres some CI issues we need to resolve, too, i'll take a quick look and see if I can work out whats going wrong
| {% if index_mode %} | ||
| "index": { | ||
| "mode": {{ index_mode | tojson }} | ||
| {% if use_doc_values_skipper | default(true) %} |
There was a problem hiding this comment.
OK, that makes sense - but you need to be aware that you would not be able to use any other index settings, if the use_doc_values_skipper were to be set to false. You could extend the endif to the end of index settings, that way an invalid json couldnt be generated - I wonder though if we should try and investigate (outside of this PR), if there's a way we can make this easier - we have similar issues in other tracks, though we tend to get around it by setting the final item in index settings so it always is printed, thus you can include a comma at the end of other lines -> https://github.com/elastic/rally-tracks/blob/master/github_archive/index-template.json#L38
|
@gareth-ellis I think I fixed invalid json error issues. However I don't understand why the current ci jobs have failed. For example: |
|
You need to scroll up slightly. An example: |
|
Thanks for pointing this out. So it looks like this setting is unknown in serverless. How does this test verify these templates? |
|
@gareth-ellis I've removed the |
|
Hey @gareth-ellis, the 3.10 and 3.13 compat pr ci jobs keep failing with: Do you have an idea what this is happening? |
|
It seems to be compression-stats is timing out: Specifically this step: We probably have a 10 second timeout, could it be the changes in this PR have made that slower? I'll try and reproduce locally and should be able to see what is actually happening from logs: The equivalent from a run on master: It suggests that probably this PR (or something else) has caused the compression stats to take a bit longer - so we now go over the timeout. We were at 51 seconds before for the entire task - that should be three calls I believe. |
The main change is that without index modes other track params can be used as well. But these track params do have to be enabled and even if that is the case I don't see how that would cause time outs, but maybe I miss something here. What is |
|
This is the compression stats runner: https://github.com/elastic/rally-tracks/blob/master/elastic/shared/runners/datastream.py#L123-L178 |
|
Thanks, looking at the python method, a few ES apis are being invoked. But the error doesn't say with api invocation times out. Also I think |
|
I reran locally, from master and then from your branch,then from your branch with a longer timeout: |
|
Thanks @gareth-ellis, then there must be something wrong here :) I don't know what these rally pr jobs do. Would you be able to share how you reproduced this? I'm curious what the exact search request is and with what settings we run. And does this run against main branch of Elasticsearch or are we running agains older ES version here? |
|
The performance issue was fixed via elastic/elasticsearch#145077 |
|
@martijnvg When a In case of merge conflicts during backporting, create the backport PR manually following the steps from README:
Thank you! |
index_modetrack param to other track params. Which I think was never intended and is undocumented. The used track params in these files are valid outsideindex_mode.Allow index.use_time_series_doc_values_format_large_binary_block_size also when serverless_operator == true, so that we can see the effect in serverless.use_time_series_doc_values_formattrack param.