diff --git a/pkg/queryfrontend/shard_query.go b/pkg/queryfrontend/shard_query.go index faffd73783..36921f5cca 100644 --- a/pkg/queryfrontend/shard_query.go +++ b/pkg/queryfrontend/shard_query.go @@ -19,7 +19,7 @@ import ( ) // PromQLShardingMiddleware creates a new Middleware that shards PromQL aggregations using grouping labels. -func PromQLShardingMiddleware(queryAnalyzer querysharding.Analyze, numShards int, limits queryrange.Limits, merger queryrange.Merger, registerer prometheus.Registerer) queryrange.Middleware { +func PromQLShardingMiddleware(queryAnalyzer *querysharding.CachedQueryAnalyzer, numShards int, limits queryrange.Limits, merger queryrange.Merger, registerer prometheus.Registerer) queryrange.Middleware { return queryrange.MiddlewareFunc(func(next queryrange.Handler) queryrange.Handler { queriesTotal := promauto.With(registerer).NewCounterVec(prometheus.CounterOpts{ Namespace: "thanos", @@ -45,7 +45,7 @@ type querySharder struct { next queryrange.Handler limits queryrange.Limits - queryAnalyzer querysharding.Analyze + queryAnalyzer *querysharding.CachedQueryAnalyzer numShards int merger queryrange.Merger diff --git a/pkg/querysharding/analyzer.go b/pkg/querysharding/analyzer.go index 66d7307fed..f93a103fcf 100644 --- a/pkg/querysharding/analyzer.go +++ b/pkg/querysharding/analyzer.go @@ -13,7 +13,7 @@ import ( // QueryAnalyzer is an analyzer which determines // whether a PromQL Query is shardable and using which labels. -type Analyze interface { +type Analyzer interface { Analyze(string) (QueryAnalysis, error) }