Skip to content

Commit 9597ca4

Browse files
committed
Allow ExternalPusher and ExternalQueryable to be specified separately
Signed-off-by: Junhao Yu <yujunhao@amazon.com>
1 parent caedb08 commit 9597ca4

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

pkg/cortex/modules.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -653,8 +653,20 @@ func (t *Cortex) initRuler() (serv services.Service, err error) {
653653
t.Cfg.Ruler.Ring.ListenPort = t.Cfg.Server.GRPCListenPort
654654
metrics := ruler.NewRuleEvalMetrics(t.Cfg.Ruler, prometheus.DefaultRegisterer)
655655

656-
if t.Cfg.ExternalPusher != nil && t.Cfg.ExternalQueryable != nil {
657-
rulerRegisterer := prometheus.WrapRegistererWith(prometheus.Labels{"engine": "ruler"}, prometheus.DefaultRegisterer)
656+
rulerRegisterer := prometheus.WrapRegistererWith(prometheus.Labels{"engine": "ruler"}, prometheus.DefaultRegisterer)
657+
658+
var (
659+
pusher ruler.Pusher
660+
queryable prom_storage.Queryable
661+
queryEngine promql.QueryEngine
662+
)
663+
if t.Cfg.ExternalPusher != nil {
664+
pusher = t.Cfg.ExternalPusher
665+
} else {
666+
pusher = t.Distributor
667+
}
668+
if t.Cfg.ExternalQueryable != nil {
669+
queryable = t.Cfg.ExternalQueryable
658670

659671
opts := promql.EngineOpts{
660672
Logger: util_log.SLogger,
@@ -670,19 +682,15 @@ func (t *Cortex) initRuler() (serv services.Service, err error) {
670682
return t.Cfg.Querier.DefaultEvaluationInterval.Milliseconds()
671683
},
672684
}
673-
queryEngine := engine.New(opts, t.Cfg.Ruler.ThanosEngine, rulerRegisterer)
674-
675-
managerFactory := ruler.DefaultTenantManagerFactory(t.Cfg.Ruler, t.Cfg.ExternalPusher, t.Cfg.ExternalQueryable, queryEngine, t.Overrides, metrics, prometheus.DefaultRegisterer)
676-
manager, err = ruler.NewDefaultMultiTenantManager(t.Cfg.Ruler, t.Overrides, managerFactory, metrics, prometheus.DefaultRegisterer, util_log.Logger)
685+
queryEngine = engine.New(opts, t.Cfg.Ruler.ThanosEngine, rulerRegisterer)
677686
} else {
678-
rulerRegisterer := prometheus.WrapRegistererWith(prometheus.Labels{"engine": "ruler"}, prometheus.DefaultRegisterer)
679687
// TODO: Consider wrapping logger to differentiate from querier module logger
680-
queryable, _, engine := querier.New(t.Cfg.Querier, t.Overrides, t.Distributor, t.StoreQueryables, rulerRegisterer, util_log.Logger, t.Overrides.RulesPartialData)
681-
682-
managerFactory := ruler.DefaultTenantManagerFactory(t.Cfg.Ruler, t.Distributor, queryable, engine, t.Overrides, metrics, prometheus.DefaultRegisterer)
683-
manager, err = ruler.NewDefaultMultiTenantManager(t.Cfg.Ruler, t.Overrides, managerFactory, metrics, prometheus.DefaultRegisterer, util_log.Logger)
688+
queryable, _, queryEngine = querier.New(t.Cfg.Querier, t.Overrides, t.Distributor, t.StoreQueryables, rulerRegisterer, util_log.Logger, t.Overrides.RulesPartialData)
684689
}
685690

691+
managerFactory := ruler.DefaultTenantManagerFactory(t.Cfg.Ruler, pusher, queryable, queryEngine, t.Overrides, metrics, prometheus.DefaultRegisterer)
692+
manager, err = ruler.NewDefaultMultiTenantManager(t.Cfg.Ruler, t.Overrides, managerFactory, metrics, prometheus.DefaultRegisterer, util_log.Logger)
693+
686694
if err != nil {
687695
return nil, err
688696
}

0 commit comments

Comments
 (0)