@@ -52,8 +52,6 @@ func setupTestDeleteStore(t *testing.T) *DeleteStore {
52
52
}
53
53
54
54
func setupStoresAndPurger (t * testing.T ) (* DeleteStore , chunk.Store , chunk.ObjectClient , * Purger , * prometheus.Registry ) {
55
- registry := prometheus .NewRegistry ()
56
-
57
55
deleteStore := setupTestDeleteStore (t )
58
56
59
57
chunkStore , err := testutils .SetupTestChunkStore ()
@@ -62,13 +60,21 @@ func setupStoresAndPurger(t *testing.T) (*DeleteStore, chunk.Store, chunk.Object
62
60
storageClient , err := testutils .SetupTestObjectStore ()
63
61
require .NoError (t , err )
64
62
63
+ purger , registry := setupPurger (t , deleteStore , chunkStore , storageClient )
64
+
65
+ return deleteStore , chunkStore , storageClient , purger , registry
66
+ }
67
+
68
+ func setupPurger (t * testing.T , deleteStore * DeleteStore , chunkStore chunk.Store , storageClient chunk.ObjectClient ) (* Purger , * prometheus.Registry ) {
69
+ registry := prometheus .NewRegistry ()
70
+
65
71
var cfg Config
66
72
flagext .DefaultValues (& cfg )
67
73
68
74
purger , err := NewPurger (cfg , deleteStore , chunkStore , storageClient , registry )
69
75
require .NoError (t , err )
70
76
71
- return deleteStore , chunkStore , storageClient , purger , registry
77
+ return purger , registry
72
78
}
73
79
74
80
func buildChunks (from , through model.Time , batchSize int ) ([]chunk.Chunk , error ) {
@@ -347,10 +353,7 @@ func TestPurger_Restarts(t *testing.T) {
347
353
require .NoError (t , services .StopAndAwaitTerminated (context .Background (), purger ))
348
354
349
355
// create a new purger to check whether it picks up in process delete requests
350
- var cfg Config
351
- flagext .DefaultValues (& cfg )
352
- newPurger , err := NewPurger (cfg , deleteStore , chunkStore , storageClient , prometheus .NewPedanticRegistry ())
353
- require .NoError (t , err )
356
+ newPurger , _ := setupPurger (t , deleteStore , chunkStore , storageClient )
354
357
355
358
// load in process delete requests by calling Run
356
359
require .NoError (t , services .StartAndAwaitRunning (context .Background (), newPurger ))
@@ -385,7 +388,7 @@ func TestPurger_Restarts(t *testing.T) {
385
388
}
386
389
387
390
func TestPurger_Metrics (t * testing.T ) {
388
- deleteStore , chunkStore , _ , purger , registry := setupStoresAndPurger (t )
391
+ deleteStore , chunkStore , storageClient , purger , registry := setupStoresAndPurger (t )
389
392
defer func () {
390
393
purger .StopAsync ()
391
394
chunkStore .Stop ()
@@ -414,9 +417,17 @@ func TestPurger_Metrics(t *testing.T) {
414
417
require .InDelta (t , float64 (2 * 86400 ), testutil .ToFloat64 (purger .metrics .oldestPendingDeleteRequestAgeSeconds ), 1 )
415
418
require .Equal (t , float64 (2 ), testutil .ToFloat64 (purger .metrics .pendingDeleteRequestsCount ))
416
419
417
- // start loop to process requests
420
+ // stop the existing purger
421
+ require .NoError (t , services .StopAndAwaitTerminated (context .Background (), purger ))
422
+
423
+ // create a new purger
424
+ purger , registry = setupPurger (t , deleteStore , chunkStore , storageClient )
425
+
426
+ // load in process delete requests by starting the service
418
427
require .NoError (t , services .StartAndAwaitRunning (context .Background (), purger ))
419
428
429
+ defer purger .StopAsync ()
430
+
420
431
// wait until purger_delete_requests_processed_total starts to show up.
421
432
test .Poll (t , 2 * time .Second , 1 , func () interface {} {
422
433
count , err := testutil .GatherAndCount (registry , "cortex_purger_delete_requests_processed_total" )
0 commit comments