From 8cf67d99ba900c3d09bc0596c78baad4c9c740b5 Mon Sep 17 00:00:00 2001 From: Adam Bernot Date: Tue, 12 Aug 2025 15:33:38 +0000 Subject: [PATCH 1/2] test: remove obsolete test As mentioned in #16182, the BenchmarkStartup test for the queue manager covers an old API and uses settings that will not occur in production Signed-off-by: Adam Bernot --- storage/remote/queue_manager_test.go | 43 ---------------------------- 1 file changed, 43 deletions(-) diff --git a/storage/remote/queue_manager_test.go b/storage/remote/queue_manager_test.go index 565b7cad64..cb61179405 100644 --- a/storage/remote/queue_manager_test.go +++ b/storage/remote/queue_manager_test.go @@ -17,12 +17,9 @@ import ( "context" "errors" "fmt" - "math" "math/rand" "os" - "path" "runtime/pprof" - "sort" "strconv" "strings" "sync" @@ -48,7 +45,6 @@ import ( "github.com/prometheus/prometheus/scrape" "github.com/prometheus/prometheus/tsdb/chunks" "github.com/prometheus/prometheus/tsdb/record" - "github.com/prometheus/prometheus/tsdb/wlog" "github.com/prometheus/prometheus/util/compression" "github.com/prometheus/prometheus/util/runutil" "github.com/prometheus/prometheus/util/testutil" @@ -1472,45 +1468,6 @@ func BenchmarkStoreSeries(b *testing.B) { } } -func BenchmarkStartup(b *testing.B) { - dir := os.Getenv("WALDIR") - if dir == "" { - b.Skip("WALDIR env var not set") - } - - // Find the second largest segment; we will replay up to this. - // (Second largest as WALWatcher will start tailing the largest). - dirents, err := os.ReadDir(path.Join(dir, "wal")) - require.NoError(b, err) - - var segments []int - for _, dirent := range dirents { - if i, err := strconv.Atoi(dirent.Name()); err == nil { - segments = append(segments, i) - } - } - sort.Ints(segments) - - logger := promslog.New(&promslog.Config{}) - - cfg := testDefaultQueueConfig() - mcfg := config.DefaultMetadataConfig - for n := 0; n < b.N; n++ { - metrics := newQueueManagerMetrics(nil, "", "") - watcherMetrics := wlog.NewWatcherMetrics(nil) - c := NewTestBlockedWriteClient() - // todo: test with new proto type(s) - m := NewQueueManager(metrics, watcherMetrics, nil, logger, dir, - newEWMARate(ewmaWeight, shardUpdateDuration), - cfg, mcfg, labels.EmptyLabels(), nil, c, 1*time.Minute, newPool(), newHighestTimestampMetric(), nil, false, false, config.RemoteWriteProtoMsgV1) - m.watcher.SetStartTime(timestamp.Time(math.MaxInt64)) - m.watcher.MaxSegment = segments[len(segments)-2] - m.watcher.SetMetrics() - err := m.watcher.Run() - require.NoError(b, err) - } -} - func TestProcessExternalLabels(t *testing.T) { b := labels.NewBuilder(labels.EmptyLabels()) for i, tc := range []struct { From 575a60ec92a56cd562dde6c586b0fa7095b4c520 Mon Sep 17 00:00:00 2001 From: Adam Bernot Date: Fri, 15 Aug 2025 18:56:19 +0000 Subject: [PATCH 2/2] test: fix flaky test A race condition in TestSendSamplesWithBackoffWithSampleAgeLimit was observed in CI where the sample age limit was too close to the backoff time, causing samples to be dropped intermittently. Increasing the SampleAgeLimit resolves the problem. Signed-off-by: Adam Bernot --- storage/remote/queue_manager_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/remote/queue_manager_test.go b/storage/remote/queue_manager_test.go index cb61179405..5b23515dad 100644 --- a/storage/remote/queue_manager_test.go +++ b/storage/remote/queue_manager_test.go @@ -2003,7 +2003,7 @@ func TestIsSampleOld(t *testing.T) { func TestSendSamplesWithBackoffWithSampleAgeLimit(t *testing.T) { t.Parallel() maxSamplesPerSend := 10 - sampleAgeLimit := time.Second + sampleAgeLimit := time.Second * 2 cfg := config.DefaultQueueConfig cfg.MaxShards = 1