Skip to content

Commit 1b9829b

Browse files
fix(blooms): Initialize bloom gateway client only once (backport release-3.4.x) (#16268)
Co-authored-by: Christian Haudum <[email protected]>
1 parent fb4ea87 commit 1b9829b

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

pkg/loki/loki.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ type Loki struct {
370370
ingesterQuerier *querier.IngesterQuerier
371371
Store storage.Store
372372
BloomStore bloomshipper.Store
373+
bloomGatewayClient bloomgateway.Client
373374
tableManager *index.TableManager
374375
frontend Frontend
375376
ruler *base_ruler.Ruler
@@ -694,6 +695,7 @@ func (t *Loki) setupModuleManager() error {
694695
mm.RegisterModule(IndexGatewayRing, t.initIndexGatewayRing, modules.UserInvisibleModule)
695696
mm.RegisterModule(IndexGatewayInterceptors, t.initIndexGatewayInterceptors, modules.UserInvisibleModule)
696697
mm.RegisterModule(BloomGateway, t.initBloomGateway)
698+
mm.RegisterModule(BloomGatewayClient, t.initBloomGatewayClient)
697699
mm.RegisterModule(QueryScheduler, t.initQueryScheduler)
698700
mm.RegisterModule(QuerySchedulerRing, t.initQuerySchedulerRing, modules.UserInvisibleModule)
699701
mm.RegisterModule(Analytics, t.initAnalytics, modules.UserInvisibleModule)
@@ -732,7 +734,7 @@ func (t *Loki) setupModuleManager() error {
732734
BloomGateway: {Server, BloomStore, Analytics},
733735
BloomPlanner: {Server, BloomStore, Analytics, Store},
734736
BloomBuilder: {Server, BloomStore, Analytics, Store},
735-
BloomStore: {IndexGatewayRing},
737+
BloomStore: {IndexGatewayRing, BloomGatewayClient},
736738
PatternRingClient: {Server, MemberlistKV, Analytics},
737739
PatternIngesterTee: {Server, MemberlistKV, Analytics, PatternRingClient},
738740
PatternIngester: {Server, MemberlistKV, Analytics, PatternRingClient, PatternIngesterTee, Overrides},

pkg/loki/modules.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ const (
128128
IndexGatewayInterceptors = "index-gateway-interceptors"
129129
BloomStore = "bloom-store"
130130
BloomGateway = "bloom-gateway"
131+
BloomGatewayClient = "bloom-gateway-client"
131132
BloomPlanner = "bloom-planner"
132133
BloomBuilder = "bloom-builder"
133134
QueryScheduler = "query-scheduler"
@@ -1549,16 +1550,12 @@ func (t *Loki) initIndexGateway() (services.Service, error) {
15491550

15501551
var bloomQuerier indexgateway.BloomQuerier
15511552
if t.Cfg.BloomGateway.Enabled {
1552-
bloomGatewayClient, err := bloomgateway.NewClient(t.Cfg.BloomGateway.Client, prometheus.DefaultRegisterer, logger)
1553-
if err != nil {
1554-
return nil, err
1555-
}
15561553
resolver := bloomgateway.NewBlockResolver(t.BloomStore, logger)
15571554
querierCfg := bloomgateway.QuerierConfig{
15581555
BuildTableOffset: t.Cfg.BloomBuild.Planner.MinTableOffset,
15591556
BuildInterval: t.Cfg.BloomBuild.Planner.PlanningInterval,
15601557
}
1561-
bloomQuerier = bloomgateway.NewQuerier(bloomGatewayClient, querierCfg, t.Overrides, resolver, prometheus.DefaultRegisterer, logger)
1558+
bloomQuerier = bloomgateway.NewQuerier(t.bloomGatewayClient, querierCfg, t.Overrides, resolver, prometheus.DefaultRegisterer, logger)
15621559
}
15631560

15641561
gateway, err := indexgateway.NewIndexGateway(t.Cfg.IndexGateway, t.Overrides, logger, prometheus.DefaultRegisterer, t.Store, indexClients, bloomQuerier)
@@ -1653,6 +1650,18 @@ func (t *Loki) initBloomPlanner() (services.Service, error) {
16531650
return p, nil
16541651
}
16551652

1653+
func (t *Loki) initBloomGatewayClient() (services.Service, error) {
1654+
var err error
1655+
if t.Cfg.BloomGateway.Enabled {
1656+
logger := log.With(util_log.Logger, "component", "bloom-gateway-client")
1657+
t.bloomGatewayClient, err = bloomgateway.NewClient(t.Cfg.BloomGateway.Client, prometheus.DefaultRegisterer, logger)
1658+
if err != nil {
1659+
return nil, err
1660+
}
1661+
}
1662+
return nil, nil
1663+
}
1664+
16561665
func (t *Loki) initBloomBuilder() (services.Service, error) {
16571666
if !t.Cfg.BloomBuild.Enabled {
16581667
return nil, nil
@@ -1670,15 +1679,6 @@ func (t *Loki) initBloomBuilder() (services.Service, error) {
16701679
ringManager = t.indexGatewayRingManager
16711680
}
16721681

1673-
var bloomGatewayClient bloomgateway.Client
1674-
if t.Cfg.BloomGateway.Enabled {
1675-
var err error
1676-
bloomGatewayClient, err = bloomgateway.NewClient(t.Cfg.BloomGateway.Client, prometheus.DefaultRegisterer, logger)
1677-
if err != nil {
1678-
return nil, err
1679-
}
1680-
}
1681-
16821682
return builder.New(
16831683
t.Cfg.BloomBuild.Builder,
16841684
t.Overrides,
@@ -1687,7 +1687,7 @@ func (t *Loki) initBloomBuilder() (services.Service, error) {
16871687
t.ClientMetrics,
16881688
t.Store,
16891689
t.BloomStore,
1690-
bloomGatewayClient,
1690+
t.bloomGatewayClient,
16911691
logger,
16921692
prometheus.DefaultRegisterer,
16931693
ringManager,

0 commit comments

Comments
 (0)