From 260e7d75ac45e1c344ae1bec706e17936dfd68bf Mon Sep 17 00:00:00 2001 From: Mauro Stettler Date: Wed, 18 Jan 2023 15:15:35 +0100 Subject: [PATCH 1/3] introduce ephemeral checker service and make distributor service depend on it Signed-off-by: Mauro Stettler --- pkg/mimir/mimir.go | 2 ++ pkg/mimir/modules.go | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/mimir/mimir.go b/pkg/mimir/mimir.go index c661be4710a..6c769324c40 100644 --- a/pkg/mimir/mimir.go +++ b/pkg/mimir/mimir.go @@ -67,6 +67,7 @@ import ( "github.com/grafana/mimir/pkg/usagestats" "github.com/grafana/mimir/pkg/util" "github.com/grafana/mimir/pkg/util/activitytracker" + "github.com/grafana/mimir/pkg/util/ephemeral" util_log "github.com/grafana/mimir/pkg/util/log" "github.com/grafana/mimir/pkg/util/noauth" "github.com/grafana/mimir/pkg/util/process" @@ -667,6 +668,7 @@ type Mimir struct { ActivityTracker *activitytracker.ActivityTracker UsageStatsReporter *usagestats.Reporter BuildInfoHandler http.Handler + EphemeralChecker ephemeral.SeriesCheckerByUser // Queryables that the querier should use to query the long term storage. StoreQueryables []querier.QueryableWithFilter diff --git a/pkg/mimir/modules.go b/pkg/mimir/modules.go index 02c96059297..a3a850bd6ba 100644 --- a/pkg/mimir/modules.go +++ b/pkg/mimir/modules.go @@ -73,6 +73,7 @@ const ( ActiveGroupsCleanupService string = "active-groups-cleanup-service" Distributor string = "distributor" DistributorService string = "distributor-service" + EphemeralChecker string = "ephemeral-checker" Ingester string = "ingester" IngesterService string = "ingester-service" Flusher string = "flusher" @@ -297,7 +298,7 @@ func (t *Mimir) initDistributorService() (serv services.Service, err error) { // ruler's dependency) canJoinDistributorsRing := t.Cfg.isAnyModuleEnabled(Distributor, Write, All) - t.Distributor, err = distributor.New(t.Cfg.Distributor, t.Cfg.IngesterClient, t.Overrides, t.ActiveGroupsCleanup, t.Ring, t.Overrides, canJoinDistributorsRing, t.Registerer, util_log.Logger) + t.Distributor, err = distributor.New(t.Cfg.Distributor, t.Cfg.IngesterClient, t.Overrides, t.ActiveGroupsCleanup, t.Ring, t.EphemeralChecker, canJoinDistributorsRing, t.Registerer, util_log.Logger) if err != nil { return } @@ -309,6 +310,11 @@ func (t *Mimir) initDistributorService() (serv services.Service, err error) { return t.Distributor, nil } +func (t *Mimir) initEphemeralChecker() (serv services.Service, err error) { + t.EphemeralChecker = t.Overrides + return nil, nil +} + func (t *Mimir) initDistributor() (serv services.Service, err error) { t.API.RegisterDistributor(t.Distributor, t.Cfg.Distributor, t.Registerer) @@ -825,6 +831,7 @@ func (t *Mimir) setupModuleManager() error { mm.RegisterModule(ActiveGroupsCleanupService, t.initActiveGroupsCleanupService, modules.UserInvisibleModule) mm.RegisterModule(Distributor, t.initDistributor) mm.RegisterModule(DistributorService, t.initDistributorService, modules.UserInvisibleModule) + mm.RegisterModule(EphemeralChecker, t.initEphemeralChecker) mm.RegisterModule(Ingester, t.initIngester) mm.RegisterModule(IngesterService, t.initIngesterService, modules.UserInvisibleModule) mm.RegisterModule(Flusher, t.initFlusher) @@ -856,7 +863,7 @@ func (t *Mimir) setupModuleManager() error { Overrides: {RuntimeConfig}, OverridesExporter: {Overrides, MemberlistKV}, Distributor: {DistributorService, API, ActiveGroupsCleanupService}, - DistributorService: {Ring, Overrides}, + DistributorService: {Ring, Overrides, EphemeralChecker}, Ingester: {IngesterService, API, ActiveGroupsCleanupService}, IngesterService: {Overrides, RuntimeConfig, MemberlistKV}, Flusher: {Overrides, API}, From 8c7880ae466ae90d13e7b6bb587873a9769f40bd Mon Sep 17 00:00:00 2001 From: Mauro Stettler Date: Wed, 18 Jan 2023 17:25:44 +0100 Subject: [PATCH 2/3] overrides a dependency of ephemeral checker Signed-off-by: Mauro Stettler --- pkg/mimir/modules.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/mimir/modules.go b/pkg/mimir/modules.go index a3a850bd6ba..5fe1cf84ca4 100644 --- a/pkg/mimir/modules.go +++ b/pkg/mimir/modules.go @@ -864,6 +864,7 @@ func (t *Mimir) setupModuleManager() error { OverridesExporter: {Overrides, MemberlistKV}, Distributor: {DistributorService, API, ActiveGroupsCleanupService}, DistributorService: {Ring, Overrides, EphemeralChecker}, + EphemeralChecker: {Overrides}, Ingester: {IngesterService, API, ActiveGroupsCleanupService}, IngesterService: {Overrides, RuntimeConfig, MemberlistKV}, Flusher: {Overrides, API}, From 5c25bbf35e22794aefbd58bd08a8fa49d5adf07b Mon Sep 17 00:00:00 2001 From: Mauro Stettler Date: Wed, 18 Jan 2023 17:26:39 +0100 Subject: [PATCH 3/3] make the ephemeral checker module invisible to the user Signed-off-by: Mauro Stettler --- pkg/mimir/modules.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/mimir/modules.go b/pkg/mimir/modules.go index 5fe1cf84ca4..c22b05c861e 100644 --- a/pkg/mimir/modules.go +++ b/pkg/mimir/modules.go @@ -831,7 +831,7 @@ func (t *Mimir) setupModuleManager() error { mm.RegisterModule(ActiveGroupsCleanupService, t.initActiveGroupsCleanupService, modules.UserInvisibleModule) mm.RegisterModule(Distributor, t.initDistributor) mm.RegisterModule(DistributorService, t.initDistributorService, modules.UserInvisibleModule) - mm.RegisterModule(EphemeralChecker, t.initEphemeralChecker) + mm.RegisterModule(EphemeralChecker, t.initEphemeralChecker, modules.UserInvisibleModule) mm.RegisterModule(Ingester, t.initIngester) mm.RegisterModule(IngesterService, t.initIngesterService, modules.UserInvisibleModule) mm.RegisterModule(Flusher, t.initFlusher)