| 639 | } |
| 640 | |
| 641 | func (t *Cortex) initRulerStorage() (serv services.Service, err error) { |
| 642 | // if the ruler is not configured and we're in single binary then let's just log an error and continue. |
| 643 | // unfortunately there is no way to generate a "default" config and compare default against actual |
| 644 | // to determine if it's unconfigured. the following check, however, correctly tests this. |
| 645 | // Single binary integration tests will break if this ever drifts |
| 646 | if t.Cfg.isModuleEnabled(All) && t.Cfg.RulerStorage.IsDefaults() { |
| 647 | level.Info(util_log.Logger).Log("msg", "Ruler storage is not configured in single binary mode and will not be started.") |
| 648 | return |
| 649 | } |
| 650 | |
| 651 | t.RulerStorage, err = ruler.NewRuleStore(context.Background(), t.Cfg.RulerStorage, t.OverridesConfig, rules.FileLoader{}, util_log.Logger, prometheus.DefaultRegisterer, t.Cfg.NameValidationScheme) |
| 652 | return |
| 653 | } |
| 654 | |
| 655 | func createActiveQueryTracker(cfg querier.Config, logger *slog.Logger) promql.QueryTracker { |
| 656 | dir := cfg.ActiveQueryTrackerDir |