Enable merge querier if multi tenant query federation is enabled
()
| 303 | |
| 304 | // Enable merge querier if multi tenant query federation is enabled |
| 305 | func (t *Cortex) initTenantFederation() (serv services.Service, err error) { |
| 306 | if t.Cfg.TenantFederation.Enabled { |
| 307 | // Make sure the mergeQuerier is only used for request with more than a |
| 308 | // single tenant. This allows for a less impactful enabling of tenant |
| 309 | // federation. |
| 310 | byPassForSingleQuerier := true |
| 311 | |
| 312 | reg := prometheus.DefaultRegisterer |
| 313 | t.QuerierQueryable = querier.NewSampleAndChunkQueryable(tenantfederation.NewQueryable(t.QuerierQueryable, t.Cfg.TenantFederation, byPassForSingleQuerier, reg)) |
| 314 | t.MetadataQuerier = tenantfederation.NewMetadataQuerier(t.MetadataQuerier, t.Cfg.TenantFederation, reg) |
| 315 | t.ExemplarQueryable = tenantfederation.NewExemplarQueryable(t.ExemplarQueryable, t.Cfg.TenantFederation, byPassForSingleQuerier, reg) |
| 316 | |
| 317 | if t.Cfg.TenantFederation.RegexMatcherEnabled { |
| 318 | util_log.WarnExperimentalUse("tenant-federation.regex-matcher-enabled") |
| 319 | |
| 320 | bucketClientFactory := func(ctx context.Context) (objstore.InstrumentedBucket, error) { |
| 321 | return bucket.NewClient(ctx, t.Cfg.BlocksStorage.Bucket, nil, "regex-resolver", util_log.Logger, reg) |
| 322 | } |
| 323 | |
| 324 | regexResolver, err := tenantfederation.NewRegexResolver(t.Cfg.BlocksStorage.UsersScanner, t.Cfg.TenantFederation, reg, bucketClientFactory, util_log.Logger) |
| 325 | if err != nil { |
| 326 | return nil, fmt.Errorf("failed to initialize regex resolver: %v", err) |
| 327 | } |
| 328 | users.WithDefaultResolver(regexResolver) |
| 329 | |
| 330 | return regexResolver, nil |
| 331 | } |
| 332 | |
| 333 | return nil, nil |
| 334 | } |
| 335 | |
| 336 | return nil, nil |
| 337 | } |
| 338 | |
| 339 | // initQuerier registers an internal HTTP router with a Prometheus API backed by the |
| 340 | // Cortex Queryable. Then it does one of the following: |
nothing calls this directly
no test coverage detected