Skip to content

Commit

Permalink
fix(ruler): pass noop analyseRules to rules manager (#12353)
Browse files Browse the repository at this point in the history
  • Loading branch information
ashwanthgoli authored Mar 26, 2024
1 parent 03982c2 commit 774b01d
Showing 1 changed file with 22 additions and 12 deletions.
34 changes: 22 additions & 12 deletions pkg/ruler/compat.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,18 +152,19 @@ func MultiTenantRuleManager(cfg Config, evaluator Evaluator, overrides RulesLimi
groupLoader := NewCachingGroupLoader(GroupLoader{})

mgr := rules.NewManager(&rules.ManagerOptions{
Appendable: registry,
Queryable: memStore,
QueryFunc: queryFn,
Context: user.InjectOrgID(ctx, userID),
ExternalURL: cfg.ExternalURL.URL,
NotifyFunc: ruler.SendAlerts(notifier, cfg.ExternalURL.URL.String(), cfg.DatasourceUID),
Logger: logger,
Registerer: reg,
OutageTolerance: cfg.OutageTolerance,
ForGracePeriod: cfg.ForGracePeriod,
ResendDelay: cfg.ResendDelay,
GroupLoader: groupLoader,
Appendable: registry,
Queryable: memStore,
QueryFunc: queryFn,
Context: user.InjectOrgID(ctx, userID),
ExternalURL: cfg.ExternalURL.URL,
NotifyFunc: ruler.SendAlerts(notifier, cfg.ExternalURL.URL.String(), cfg.DatasourceUID),
Logger: logger,
Registerer: reg,
OutageTolerance: cfg.OutageTolerance,
ForGracePeriod: cfg.ForGracePeriod,
ResendDelay: cfg.ResendDelay,
GroupLoader: groupLoader,
RuleDependencyController: &noopRuleDependencyController{},
})

cachingManager := &CachingRulesManager{
Expand Down Expand Up @@ -347,3 +348,12 @@ func (exprAdapter) PositionRange() posrange.PositionRange { return posrange.Posi
func (exprAdapter) PromQLExpr() {}
func (exprAdapter) Type() parser.ValueType { return parser.ValueType("unimplemented") }
func (exprAdapter) Pretty(_ int) string { return "" }

type noopRuleDependencyController struct{}

// Prometheus rules manager calls AnalyseRules to determine the dependents and dependencies of a rule
// which it then uses to decide if a rule within a group is eligible for concurrent execution.
// AnalyseRules is a noop for Loki since there is no dependency relation between rules.
func (*noopRuleDependencyController) AnalyseRules([]rules.Rule) {
// Do nothing
}

0 comments on commit 774b01d

Please sign in to comment.