@@ -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