-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
rule: Fix bug when rules were out of sync #2615
Conversation
e7f8ac8
to
00dd8d8
Compare
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.
NIce, LGTM, just some questions.
Also how this was fixed?
Note this also fixes when you have one rule loaded only, and you delete that rule it doesn't get updated, the number or rules is not important, it's the last rule.
@@ -775,6 +776,13 @@ func reloadRules(logger log.Logger, | |||
} | |||
|
|||
files = append(files, fs...) | |||
for _, fp := range fs { | |||
if _, ok := seenFiles[fp]; ok { |
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 that necessary?
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.
Also don't see you describe this being a bug in PR desc 🤔 am I missing something?
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 was just picking up from the previous PR which went through review from what I gathered, as mentioned in the description, if you feel like it's not needed let me know! :)
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.
IIUC the idea is to remove duplicate rule files (e.g. thanos rule --rule-file foo.yaml --rule-file foo.yaml
) but in practice it shouldn't matter as the rule manager will only load the file once eventually.
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.
That's true but I don't see a problem in avoiding processing the same file twice or more. I would say we should keep this change.
This was fixed as the consequence of this PR, or more like the bug scope was previously thought to be only when you have a lot of rules from what I gather. |
Co-authored-by: johncming <[email protected]> Signed-off-by: Lili Cosic <[email protected]>
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.
LGTM, well tested 🏅
This bug was already fixed in thanos-io#2615 but it got lost when we merged thanos-io#2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]>
This bug was already fixed in thanos-io#2615 but it got lost when we merged thanos-io#2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]>
This bug was already fixed in #2615 but it got lost when we merged #2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]>
This bug was already fixed in thanos-io#2615 but it got lost when we merged thanos-io#2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]>
This bug was already fixed in thanos-io#2615 but it got lost when we merged thanos-io#2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]>
* Made sure old sse S3 option if specified, produces error. Signed-off-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Cut v0.15.0-rc.0 Signed-off-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * tsdbstore: Optimized response framing if iterator finished. Signed-off-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Apply suggestions from code review Co-authored-by: Krasimir Georgiev <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Rule: update manager when all rule files are removed (#3095) This bug was already fixed in #2615 but it got lost when we merged #2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * ui: Fix Block Viewer for Compactor and Store (#3098) * ui: Fix Block viewer for Compactor and Store Signed-off-by: Prem Kumar <[email protected]> * Add an entry in CHANGELOG.md Signed-off-by: Prem Kumar <[email protected]> * ui: react: Fixed tests for Blocks Signed-off-by: Prem Kumar <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * querier: Fix overwriting maxSourceResolution when auto downsampling is enabled (#3105) * Fix overwriting maxSourceResolution when auto downsampling is enabled Signed-off-by: Ben Ye <[email protected]> * add changelog Signed-off-by: Ben Ye <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Author: Krasi Georgiev <[email protected]> Date: Thu Aug 27 14:10:19 2020 +0300 (#3010) Make the PromQL lookBack configurable with a flag Signed-off-by: Krasi Georgiev <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Cut release v0.15.0-rc.1 (#3103) * Cut release v0.15.0-rc.1 Signed-off-by: Kemal Akkoyun <[email protected]> * Address review issues Signed-off-by: Kemal Akkoyun <[email protected]> * Fix changelog Signed-off-by: Kemal Akkoyun <[email protected]> * Cut release v0.15.0 (#3129) Signed-off-by: Kemal Akkoyun <[email protected]> * Minor fix Signed-off-by: Kemal Akkoyun <[email protected]> * Address review comments Signed-off-by: Kemal Akkoyun <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]> Co-authored-by: Krasimir Georgiev <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Co-authored-by: Prem Kumar <[email protected]> Co-authored-by: Ben Ye <[email protected]>
* Made sure old sse S3 option if specified, produces error. Signed-off-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Cut v0.15.0-rc.0 Signed-off-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * tsdbstore: Optimized response framing if iterator finished. Signed-off-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Apply suggestions from code review Co-authored-by: Krasimir Georgiev <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Rule: update manager when all rule files are removed (#3095) This bug was already fixed in thanos-io/thanos#2615 but it got lost when we merged thanos-io/thanos#2200. Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * ui: Fix Block Viewer for Compactor and Store (#3098) * ui: Fix Block viewer for Compactor and Store Signed-off-by: Prem Kumar <[email protected]> * Add an entry in CHANGELOG.md Signed-off-by: Prem Kumar <[email protected]> * ui: react: Fixed tests for Blocks Signed-off-by: Prem Kumar <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * querier: Fix overwriting maxSourceResolution when auto downsampling is enabled (#3105) * Fix overwriting maxSourceResolution when auto downsampling is enabled Signed-off-by: Ben Ye <[email protected]> * add changelog Signed-off-by: Ben Ye <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Author: Krasi Georgiev <[email protected]> Date: Thu Aug 27 14:10:19 2020 +0300 (#3010) Make the PromQL lookBack configurable with a flag Signed-off-by: Krasi Georgiev <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Cut release v0.15.0-rc.1 (#3103) * Cut release v0.15.0-rc.1 Signed-off-by: Kemal Akkoyun <[email protected]> * Address review issues Signed-off-by: Kemal Akkoyun <[email protected]> * Fix changelog Signed-off-by: Kemal Akkoyun <[email protected]> * Cut release v0.15.0 (#3129) Signed-off-by: Kemal Akkoyun <[email protected]> * Minor fix Signed-off-by: Kemal Akkoyun <[email protected]> * Address review comments Signed-off-by: Kemal Akkoyun <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]> Co-authored-by: Krasimir Georgiev <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> Co-authored-by: johncming <[email protected]> Co-authored-by: Lili Cosic <[email protected]> Co-authored-by: Prem Kumar <[email protected]> Co-authored-by: Ben Ye <[email protected]>
Note: The commits were taken from this PR #1439, as that PR was closed too early but the bug still exists and we hit it in our setup. I added the original author as the co-commiter, as they were not responsive on the original PR.
Changes
From original PR:
Note this also fixes when you have one rule loaded only, and you delete that rule it doesn't get updated, the number or rules is not important, it's the last rule.
Verification
There is a unit test added, I also tested this manually in our cluster setup by loading the rule via yaml file as the OP suggested and deleting the rule from the file, the rule was now cleared correctly.