MCPcopy Index your code
hub / github.com/cortexproject/cortex / initQueryFrontendTripperware

Method initQueryFrontendTripperware

pkg/cortex/modules.go:541–612  ·  view source on GitHub ↗

initQueryFrontendTripperware instantiates the tripperware used by the query frontend to optimize Prometheus query requests.

()

Source from the content-addressed store, hash-verified

539// initQueryFrontendTripperware instantiates the tripperware used by the query frontend
540// to optimize Prometheus query requests.
541func (t *Cortex) initQueryFrontendTripperware() (serv services.Service, err error) {
542 var queryAnalyzer querysharding.Analyzer
543 queryAnalyzer = querysharding.NewQueryAnalyzer()
544 if t.Cfg.Querier.EnableParquetQueryable {
545 // Disable vertical sharding for binary expression with ignore for parquet queryable.
546 queryAnalyzer = cortexquerysharding.NewDisableBinaryExpressionAnalyzer(queryAnalyzer)
547 }
548
549 // PrometheusCodec is a codec to encode and decode Prometheus query range requests and responses.
550 prometheusCodec := queryrange.NewPrometheusCodec(false, t.Cfg.Querier.ResponseCompression, t.Cfg.API.QuerierDefaultCodec)
551 // ShardedPrometheusCodec is same as PrometheusCodec but to be used on the sharded queries (it sum up the stats)
552 shardedPrometheusCodec := queryrange.NewPrometheusCodec(true, t.Cfg.Querier.ResponseCompression, t.Cfg.API.QuerierDefaultCodec)
553 instantQueryCodec := instantquery.NewInstantQueryCodec(t.Cfg.Querier.ResponseCompression, t.Cfg.API.QuerierDefaultCodec)
554
555 if t.Cfg.TenantFederation.Enabled && t.Cfg.TenantFederation.RegexMatcherEnabled {
556 // If regex matcher enabled, we use regex validator to pass regex to the querier
557 users.WithDefaultResolver(tenantfederation.NewRegexValidator())
558 }
559
560 queryRangeMiddlewares, cache, err := queryrange.Middlewares(
561 t.Cfg.QueryRange,
562 util_log.Logger,
563 t.OverridesConfig,
564 queryrange.PrometheusResponseExtractor{},
565 prometheus.DefaultRegisterer,
566 queryAnalyzer,
567 prometheusCodec,
568 shardedPrometheusCodec,
569 t.Cfg.Querier.LookbackDelta,
570 t.Cfg.Querier.DefaultEvaluationInterval,
571 t.Cfg.Querier.DistributedExecEnabled,
572 t.Cfg.Querier.ThanosEngine.LogicalOptimizers,
573 )
574 if err != nil {
575 return nil, err
576 }
577
578 instantQueryMiddlewares, err := instantquery.Middlewares(
579 util_log.Logger,
580 t.OverridesConfig,
581 instantQueryCodec,
582 queryAnalyzer,
583 t.Cfg.Querier.LookbackDelta,
584 t.Cfg.Querier.DefaultEvaluationInterval,
585 t.Cfg.Querier.DistributedExecEnabled,
586 t.Cfg.Querier.ThanosEngine.LogicalOptimizers)
587 if err != nil {
588 return nil, err
589 }
590
591 t.QueryFrontendTripperware = tripperware.NewQueryTripperware(util_log.Logger,
592 prometheus.DefaultRegisterer,
593 t.Cfg.QueryRange.ForwardHeaders,
594 queryRangeMiddlewares,
595 instantQueryMiddlewares,
596 prometheusCodec,
597 instantQueryCodec,
598 t.OverridesConfig,

Callers

nothing calls this directly

Calls 9

NewPrometheusCodecFunction · 0.92
NewInstantQueryCodecFunction · 0.92
WithDefaultResolverFunction · 0.92
NewRegexValidatorFunction · 0.92
MiddlewaresFunction · 0.92
MiddlewaresFunction · 0.92
NewQueryTripperwareFunction · 0.92
NewIdleServiceFunction · 0.92
StopMethod · 0.65

Tested by

no test coverage detected