diff --git a/pkg/loop/settings.go b/pkg/loop/settings.go index 72e3d2314..35db91327 100644 --- a/pkg/loop/settings.go +++ b/pkg/loop/settings.go @@ -70,6 +70,12 @@ func (a *AtomicSettings) Unsubscribe(ch <-chan core.SettingsUpdate) { } } +func (a *AtomicSettings) Load() (core.SettingsUpdate, error) { + a.mu.RLock() + defer a.mu.RUnlock() + return *a.current, nil +} + func (a *AtomicSettings) Store(update core.SettingsUpdate) error { getter, err := settings.NewTOMLGetter([]byte(update.Settings)) if err != nil { diff --git a/pkg/settings/limits/rate.go b/pkg/settings/limits/rate.go index 92541570f..8e7f5b6e1 100644 --- a/pkg/settings/limits/rate.go +++ b/pkg/settings/limits/rate.go @@ -321,6 +321,7 @@ func (l *rateLimiter) WaitN(ctx context.Context, n int) error { func (f Factory) newScopedRateLimiter(limit settings.Setting[config.Rate]) (RateLimiter, error) { l := &scopedRateLimiter{ + key: limit.Key, scope: limit.Scope, defaultRate: limit.DefaultValue, } @@ -373,6 +374,7 @@ func (f Factory) newScopedRateLimiter(limit settings.Setting[config.Rate]) (Rate type scopedRateLimiter struct { lggr logger.Logger + key string scope settings.Scope defaultRate config.Rate @@ -432,6 +434,7 @@ func (s *scopedRateLimiter) getOrCreate(ctx context.Context) (RateLimiter, func( func (s *scopedRateLimiter) newRateLimiter(tenant string) *rateLimiter { l := &rateLimiter{ + key: s.key, scope: s.scope, tenant: tenant, updater: newUpdater[config.Rate](logger.With(s.lggr, s.scope.String(), tenant), s.rateFn, s.subFn),