diff --git a/pkg/services/login/authinfoservice/database/database.go b/pkg/services/login/authinfoservice/database/database.go index 77540f475ce..1aa23b77d17 100644 --- a/pkg/services/login/authinfoservice/database/database.go +++ b/pkg/services/login/authinfoservice/database/database.go @@ -29,7 +29,9 @@ func ProvideAuthInfoStore(sqlStore db.DB, secretsService secrets.Service, userSe logger: log.New("login.authinfo.store"), userService: userService, } - InitMetrics() + // FIXME: disabled the metric collection for duplicate user entries + // due to query performance issues that is clogging the users Grafana instance + // InitDuplicateUserMetrics() return store } diff --git a/pkg/services/login/authinfoservice/database/stats.go b/pkg/services/login/authinfoservice/database/stats.go index 38e17b44798..c50c2eb79e5 100644 --- a/pkg/services/login/authinfoservice/database/stats.go +++ b/pkg/services/login/authinfoservice/database/stats.go @@ -10,7 +10,10 @@ import ( "github.com/grafana/grafana/pkg/services/login" ) -func InitMetrics() { +// Should be in use in ProvideAuthInfoStore +// due to query performance for big user tables +// we have disabled these metrics from Grafana for now +func InitDuplicateUserMetrics() { login.Once.Do(func() { login.MStatDuplicateUserEntries = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "stat_users_total_duplicate_user_entries", @@ -39,18 +42,18 @@ func InitMetrics() { } func (s *AuthInfoStore) RunMetricsCollection(ctx context.Context) error { - if _, err := s.GetLoginStats(ctx); err != nil { - s.logger.Warn("Failed to get authinfo metrics", "error", err.Error()) - } + // if _, err := s.GetLoginStats(ctx); err != nil { + // s.logger.Warn("Failed to get authinfo metrics", "error", err.Error()) + // } updateStatsTicker := time.NewTicker(login.MetricsCollectionInterval) defer updateStatsTicker.Stop() for { select { case <-updateStatsTicker.C: - if _, err := s.GetLoginStats(ctx); err != nil { - s.logger.Warn("Failed to get authinfo metrics", "error", err.Error()) - } + // if _, err := s.GetLoginStats(ctx); err != nil { + // s.logger.Warn("Failed to get authinfo metrics", "error", nil) + // } case <-ctx.Done(): return ctx.Err() } diff --git a/pkg/services/login/authinfoservice/service.go b/pkg/services/login/authinfoservice/service.go index 76efa7ca8b0..1f248453eb5 100644 --- a/pkg/services/login/authinfoservice/service.go +++ b/pkg/services/login/authinfoservice/service.go @@ -25,7 +25,9 @@ func ProvideAuthInfoService(userProtectionService login.UserProtectionService, a authInfoStore: authInfoStore, logger: log.New("login.authinfo"), } - usageStats.RegisterMetricsFunc(authInfoStore.CollectLoginStats) + // FIXME: disabled metrics until further notice + // query performance is slow for more than 20000 users + // usageStats.RegisterMetricsFunc(authInfoStore.CollectLoginStats) return s }