mimirtool rules prepare: do not aggregation label to on() clause if already present in group_left() or group_right() #7840
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does
During the weekend, while on-call, I supported an engineer at Grafana Labs which hit an edge case in
mimirtool rules prepare
command. The tool is used to add an aggregation label (defaults tocluster
) to any aggregation and binary operator vector matcher of each rule.The edge case we found is that when the aggregation label is already present in
group_left/right()
it shouldn't be added toon()
too, because incorrect. A PromQL query with the same label both specified inon()
andgroup_left/right()
doesn't even parse (parsing it returns the error:label "cluster" must not occur in ON and GROUP clause at once
).Example
As an example, consider the following original query:
With the code in
main
,mimirtool rules prepare
rewrites it as follow:But it's invalid, and a subsequent parsing will return
label "cluster" must not occur in ON and GROUP clause at once
. With the modified code in this PR,mimirtool rules prepare
would keep the original query as is, becausecluster
label is already part ofgroup_left()
and so shouldn't be added toon()
too.Which issue(s) this PR fixes or relates to
N/A
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]
.about-versioning.md
updated with experimental features.