@@ -91,7 +91,11 @@ func NewQueryableCreatorWithOptions(
9191 opts Options ,
9292) QueryableCreator {
9393 gf := gate .NewGateFactory (extprom .WrapRegistererWithPrefix ("concurrent_selects_" , reg ), maxConcurrentSelects , gate .Selects )
94-
94+ aggregationLabelRewriter := NewAggregationLabelRewriter (
95+ logger ,
96+ extprom .WrapRegistererWithPrefix ("aggregation_label_rewriter_" , reg ),
97+ opts .RewriteAggregationLabelTo ,
98+ )
9599 return func (
96100 deduplicate bool ,
97101 replicaLabels []string ,
@@ -104,7 +108,6 @@ func NewQueryableCreatorWithOptions(
104108 ) storage.Queryable {
105109 return & queryable {
106110 logger : logger ,
107- reg : reg ,
108111 replicaLabels : replicaLabels ,
109112 storeDebugMatchers : storeDebugMatchers ,
110113 proxy : proxy ,
@@ -120,13 +123,14 @@ func NewQueryableCreatorWithOptions(
120123 shardInfo : shardInfo ,
121124 seriesStatsReporter : seriesStatsReporter ,
122125 opts : opts ,
126+
127+ aggregationLabelRewriter : aggregationLabelRewriter ,
123128 }
124129 }
125130}
126131
127132type queryable struct {
128133 logger log.Logger
129- reg prometheus.Registerer
130134 replicaLabels []string
131135 storeDebugMatchers [][]* labels.Matcher
132136 proxy storepb.StoreServer
@@ -140,16 +144,17 @@ type queryable struct {
140144 shardInfo * storepb.ShardInfo
141145 seriesStatsReporter seriesStatsReporter
142146 opts Options
147+
148+ aggregationLabelRewriter * AggregationLabelRewriter
143149}
144150
145151// Querier returns a new storage querier against the underlying proxy store API.
146152func (q * queryable ) Querier (mint , maxt int64 ) (storage.Querier , error ) {
147- return newQuerierWithOpts (q .logger , q . reg , mint , maxt , q .replicaLabels , q .storeDebugMatchers , q .proxy , q .deduplicate , q .maxResolutionMillis , q .partialResponse , q .skipChunks , q .gateProviderFn (), q .selectTimeout , q .shardInfo , q .seriesStatsReporter , q .opts ), nil
153+ return newQuerierWithOpts (q .logger , mint , maxt , q .replicaLabels , q .storeDebugMatchers , q .proxy , q .deduplicate , q .maxResolutionMillis , q .partialResponse , q .skipChunks , q .gateProviderFn (), q .selectTimeout , q .shardInfo , q .seriesStatsReporter , q . aggregationLabelRewriter , q .opts ), nil
148154}
149155
150156type querier struct {
151157 logger log.Logger
152- reg prometheus.Registerer
153158 mint , maxt int64
154159 deduplicationFunc string
155160 replicaLabels []string
@@ -172,7 +177,6 @@ type querier struct {
172177// nolint:unparam
173178func newQuerier (
174179 logger log.Logger ,
175- reg prometheus.Registerer ,
176180 mint ,
177181 maxt int64 ,
178182 replicaLabels []string ,
@@ -186,13 +190,13 @@ func newQuerier(
186190 selectTimeout time.Duration ,
187191 shardInfo * storepb.ShardInfo ,
188192 seriesStatsReporter seriesStatsReporter ,
193+ aggregationLabelRewriter * AggregationLabelRewriter ,
189194) * querier {
190- return newQuerierWithOpts (logger , reg , mint , maxt , replicaLabels , storeDebugMatchers , proxy , deduplicate , maxResolutionMillis , partialResponse , skipChunks , selectGate , selectTimeout , shardInfo , seriesStatsReporter , Options {})
195+ return newQuerierWithOpts (logger , mint , maxt , replicaLabels , storeDebugMatchers , proxy , deduplicate , maxResolutionMillis , partialResponse , skipChunks , selectGate , selectTimeout , shardInfo , seriesStatsReporter , aggregationLabelRewriter , Options {})
191196}
192197
193198func newQuerierWithOpts (
194199 logger log.Logger ,
195- reg prometheus.Registerer ,
196200 mint ,
197201 maxt int64 ,
198202 replicaLabels []string ,
@@ -206,11 +210,15 @@ func newQuerierWithOpts(
206210 selectTimeout time.Duration ,
207211 shardInfo * storepb.ShardInfo ,
208212 seriesStatsReporter seriesStatsReporter ,
213+ aggregationLabelRewriter * AggregationLabelRewriter ,
209214 opts Options ,
210215) * querier {
211216 if logger == nil {
212217 logger = log .NewNopLogger ()
213218 }
219+ if aggregationLabelRewriter == nil {
220+ aggregationLabelRewriter = NewNopAggregationLabelRewriter ()
221+ }
214222 rl := make (map [string ]struct {})
215223 for _ , replicaLabel := range replicaLabels {
216224 rl [replicaLabel ] = struct {}{}
@@ -225,7 +233,6 @@ func newQuerierWithOpts(
225233 }
226234 return & querier {
227235 logger : logger ,
228- reg : reg ,
229236 selectGate : selectGate ,
230237 selectTimeout : selectTimeout ,
231238
@@ -242,11 +249,7 @@ func newQuerierWithOpts(
242249 shardInfo : shardInfo ,
243250 seriesStatsReporter : seriesStatsReporter ,
244251
245- aggregationLabelRewriter : NewAggregationLabelRewriter (
246- logger ,
247- extprom .WrapRegistererWithPrefix ("aggregation_label_rewriter_" , reg ),
248- opts .RewriteAggregationLabelTo ,
249- ),
252+ aggregationLabelRewriter : aggregationLabelRewriter ,
250253 }
251254}
252255
0 commit comments