@@ -285,6 +285,10 @@ func NewMiddleware(
285
285
func NewDetectedLabelsTripperware (cfg Config , opts logql.EngineOpts , logger log.Logger , l Limits , schema config.SchemaConfig , metrics * Metrics , mw base.Middleware , namespace string , merger base.Merger , limits Limits , iqo util.IngesterQueryOptions ) (base.Middleware , error ) {
286
286
return base .MiddlewareFunc (func (next base.Handler ) base.Handler {
287
287
statsHandler := mw .Wrap (next )
288
+ if cfg .MaxRetries > 0 {
289
+ rm := base .NewRetryMiddleware (logger , cfg .MaxRetries , metrics .RetryMiddlewareMetrics , namespace )
290
+ statsHandler = rm .Wrap (statsHandler )
291
+ }
288
292
splitter := newDefaultSplitter (limits , iqo )
289
293
290
294
queryRangeMiddleware := []base.Middleware {
@@ -553,6 +557,12 @@ func getOperation(path string) string {
553
557
func NewLogFilterTripperware (cfg Config , engineOpts logql.EngineOpts , log log.Logger , limits Limits , schema config.SchemaConfig , merger base.Merger , iqo util.IngesterQueryOptions , c cache.Cache , metrics * Metrics , indexStatsTripperware base.Middleware , metricsNamespace string ) (base.Middleware , error ) {
554
558
return base .MiddlewareFunc (func (next base.Handler ) base.Handler {
555
559
statsHandler := indexStatsTripperware .Wrap (next )
560
+ retryNextHandler := next
561
+ if cfg .MaxRetries > 0 {
562
+ rm := base .NewRetryMiddleware (log , cfg .MaxRetries , metrics .RetryMiddlewareMetrics , metricsNamespace )
563
+ statsHandler = rm .Wrap (statsHandler )
564
+ retryNextHandler = rm .Wrap (next )
565
+ }
556
566
557
567
queryRangeMiddleware := []base.Middleware {
558
568
QueryMetricsMiddleware (metrics .QueryMetrics ),
@@ -592,6 +602,7 @@ func NewLogFilterTripperware(cfg Config, engineOpts logql.EngineOpts, log log.Lo
592
602
limits ,
593
603
0 , // 0 is unlimited shards
594
604
statsHandler ,
605
+ retryNextHandler ,
595
606
cfg .ShardAggregations ,
596
607
),
597
608
)
@@ -618,6 +629,12 @@ func NewLogFilterTripperware(cfg Config, engineOpts logql.EngineOpts, log log.Lo
618
629
func NewLimitedTripperware (cfg Config , engineOpts logql.EngineOpts , log log.Logger , limits Limits , schema config.SchemaConfig , metrics * Metrics , merger base.Merger , iqo util.IngesterQueryOptions , indexStatsTripperware base.Middleware , metricsNamespace string ) (base.Middleware , error ) {
619
630
return base .MiddlewareFunc (func (next base.Handler ) base.Handler {
620
631
statsHandler := indexStatsTripperware .Wrap (next )
632
+ retryNextHandler := next
633
+ if cfg .MaxRetries > 0 {
634
+ rm := base .NewRetryMiddleware (log , cfg .MaxRetries , metrics .RetryMiddlewareMetrics , metricsNamespace )
635
+ statsHandler = rm .Wrap (statsHandler )
636
+ retryNextHandler = rm .Wrap (next )
637
+ }
621
638
622
639
queryRangeMiddleware := []base.Middleware {
623
640
StatsCollectorMiddleware (),
@@ -639,6 +656,7 @@ func NewLimitedTripperware(cfg Config, engineOpts logql.EngineOpts, log log.Logg
639
656
// and overwhelming the frontend, therefore we fix the number of shards to prevent this.
640
657
32 , // 0 is unlimited shards
641
658
statsHandler ,
659
+ retryNextHandler ,
642
660
cfg .ShardAggregations ,
643
661
),
644
662
)
@@ -854,6 +872,12 @@ func NewMetricTripperware(cfg Config, engineOpts logql.EngineOpts, log log.Logge
854
872
855
873
return base .MiddlewareFunc (func (next base.Handler ) base.Handler {
856
874
statsHandler := indexStatsTripperware .Wrap (next )
875
+ retryNextHandler := next
876
+ if cfg .MaxRetries > 0 {
877
+ rm := base .NewRetryMiddleware (log , cfg .MaxRetries , metrics .RetryMiddlewareMetrics , metricsNamespace )
878
+ statsHandler = rm .Wrap (statsHandler )
879
+ retryNextHandler = rm .Wrap (next )
880
+ }
857
881
858
882
queryRangeMiddleware := []base.Middleware {
859
883
QueryMetricsMiddleware (metrics .QueryMetrics ),
@@ -895,6 +919,7 @@ func NewMetricTripperware(cfg Config, engineOpts logql.EngineOpts, log log.Logge
895
919
limits ,
896
920
0 , // 0 is unlimited shards
897
921
statsHandler ,
922
+ retryNextHandler ,
898
923
cfg .ShardAggregations ,
899
924
),
900
925
)
@@ -976,6 +1001,12 @@ func NewInstantMetricTripperware(
976
1001
977
1002
return base .MiddlewareFunc (func (next base.Handler ) base.Handler {
978
1003
statsHandler := indexStatsTripperware .Wrap (next )
1004
+ retryNextHandler := next
1005
+ if cfg .MaxRetries > 0 {
1006
+ rm := base .NewRetryMiddleware (log , cfg .MaxRetries , metrics .RetryMiddlewareMetrics , metricsNamespace )
1007
+ statsHandler = rm .Wrap (statsHandler )
1008
+ retryNextHandler = rm .Wrap (next )
1009
+ }
979
1010
980
1011
queryRangeMiddleware := []base.Middleware {
981
1012
StatsCollectorMiddleware (),
@@ -1003,6 +1034,7 @@ func NewInstantMetricTripperware(
1003
1034
limits ,
1004
1035
0 , // 0 is unlimited shards
1005
1036
statsHandler ,
1037
+ retryNextHandler ,
1006
1038
cfg .ShardAggregations ,
1007
1039
),
1008
1040
)
0 commit comments