From 97eea5fd7c491f9d50d9829e6bbbfd89b2e7fb99 Mon Sep 17 00:00:00 2001 From: Vladyslav Diachenko Date: Mon, 17 Jun 2024 15:49:00 +0300 Subject: [PATCH] updated recalculate_owned_streams service to update fixed limit after checking the streams Signed-off-by: Vladyslav Diachenko --- pkg/ingester/recalculate_owned_streams.go | 1 + pkg/ingester/recalculate_owned_streams_test.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/pkg/ingester/recalculate_owned_streams.go b/pkg/ingester/recalculate_owned_streams.go index 1346033cb5819..59f8fe6b9269d 100644 --- a/pkg/ingester/recalculate_owned_streams.go +++ b/pkg/ingester/recalculate_owned_streams.go @@ -64,6 +64,7 @@ func (s *recalculateOwnedStreams) recalculate() { if err != nil { level.Error(s.logger).Log("msg", "failed to update owned streams", "err", err) } + instance.ownedStreamsSvc.updateFixedLimit() } } diff --git a/pkg/ingester/recalculate_owned_streams_test.go b/pkg/ingester/recalculate_owned_streams_test.go index 6ac0f54f06e8c..d2752fbd76499 100644 --- a/pkg/ingester/recalculate_owned_streams_test.go +++ b/pkg/ingester/recalculate_owned_streams_test.go @@ -83,6 +83,7 @@ func Test_recalculateOwnedStreams_recalculate(t *testing.T) { nil, ) require.NoError(t, err) + require.Equal(t, 100, tenant.ownedStreamsSvc.getFixedLimit(), "MaxGlobalStreamsPerUser is 100 at this moment") // not owned streams createStream(t, tenant, 49) createStream(t, tenant, 101) @@ -100,9 +101,14 @@ func Test_recalculateOwnedStreams_recalculate(t *testing.T) { mockTenantsSupplier := &mockTenantsSuplier{tenants: []*instance{tenant}} service := newRecalculateOwnedStreams(mockTenantsSupplier.get, "ingester-0", mockRing, 50*time.Millisecond, log.NewNopLogger()) + //change the limit to assert that fixed limit is updated after the recalculation + limits.DefaultLimits().MaxGlobalStreamsPerUser = 50 service.recalculate() + if testData.featureEnabled { + require.Equal(t, 50, tenant.ownedStreamsSvc.getFixedLimit(), "fixed limit must be updated after recalculation") + } require.Equal(t, testData.expectedOwnedStreamCount, tenant.ownedStreamsSvc.ownedStreamCount) require.Equal(t, testData.expectedNotOwnedStreamCount, tenant.ownedStreamsSvc.notOwnedStreamCount) })