Skip to content

Commit 28e1dc1

Browse files
committed
kvserver: test metrics in TestBaseQueueCallback* and TestReplicateQueueDecommissionScannerDisabled
his commit extends TestBaseQueueCallback* and TestReplicateQueueDecommissionScannerDisabled to also verify metric updates.
1 parent 0d37711 commit 28e1dc1

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

pkg/kv/kvserver/queue_test.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ func makeTestBaseQueue(name string, impl queueImpl, store *Store, cfg queueConfi
111111
cfg.pending = metric.NewGauge(metric.Metadata{Name: "pending"})
112112
cfg.processingNanos = metric.NewCounter(metric.Metadata{Name: "processingnanos"})
113113
cfg.purgatory = metric.NewGauge(metric.Metadata{Name: "purgatory"})
114+
cfg.enqueueAdd = metric.NewCounter(metric.Metadata{Name: "enqueueadd"})
115+
cfg.enqueueUnexpectedError = metric.NewCounter(metric.Metadata{Name: "enqueueunexpectederror"})
114116
cfg.disabledConfig = testQueueEnabled
115117
return newBaseQueue(name, impl, store, cfg)
116118
}
@@ -1321,6 +1323,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13211323
t.Fatal("unexpected call to onProcessResult")
13221324
},
13231325
})
1326+
require.Equal(t, bq.enqueueAdd.Count(), int64(1))
13241327
require.True(t, queued)
13251328
})
13261329

@@ -1347,6 +1350,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13471350
t.Fatal("unexpected call to onProcessResult")
13481351
},
13491352
})
1353+
require.Equal(t, int64(i+1), bq.enqueueAdd.Count())
13501354
require.True(t, queued)
13511355
}
13521356
// Set range id back to 1.
@@ -1367,6 +1371,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13671371
t.Fatal("unexpected call to onProcessResult")
13681372
},
13691373
})
1374+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1375+
require.Equal(t, int64(1), bq.enqueueUnexpectedError.Count())
13701376
require.False(t, queued)
13711377
})
13721378
t.Run("stopped", func(t *testing.T) {
@@ -1385,6 +1391,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13851391
},
13861392
})
13871393
require.False(t, queued)
1394+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1395+
require.Equal(t, int64(1), bq.enqueueUnexpectedError.Count())
13881396
})
13891397

13901398
t.Run("alreadyqueued", func(t *testing.T) {
@@ -1402,6 +1410,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14021410
},
14031411
})
14041412
require.True(t, queued)
1413+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1414+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14051415

14061416
// Inserting again on the same range id should fail.
14071417
queued, _ = bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
@@ -1414,6 +1424,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14141424
},
14151425
})
14161426
require.False(t, queued)
1427+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1428+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14171429
})
14181430

14191431
t.Run("purgatory", func(t *testing.T) {
@@ -1437,6 +1449,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14371449
},
14381450
})
14391451
require.False(t, queued)
1452+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1453+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14401454
})
14411455

14421456
t.Run("processing", func(t *testing.T) {
@@ -1448,7 +1462,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14481462
item.setProcessing()
14491463
bq.addLocked(item)
14501464
// Inserting a range that is already being processed should not enqueue again.
1451-
requeued, _ := bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
1465+
markedAsRequeued, _ := bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
14521466
onEnqueueResult: func(indexOnHeap int, err error) {
14531467
require.Equal(t, -1, indexOnHeap)
14541468
require.ErrorIs(t, err, errReplicaAlreadyProcessing)
@@ -1457,7 +1471,9 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14571471
t.Fatal("unexpected call to onProcessResult")
14581472
},
14591473
})
1460-
require.True(t, requeued)
1474+
require.True(t, markedAsRequeued)
1475+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1476+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14611477
})
14621478
t.Run("fullqueue", func(t *testing.T) {
14631479
testQueue := &testQueueImpl{}
@@ -1477,6 +1493,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14771493
},
14781494
})
14791495
require.True(t, queued)
1496+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1497+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14801498
})
14811499
}
14821500

pkg/kv/kvserver/replicate_queue_test.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2485,8 +2485,10 @@ func TestReplicateQueueDecommissionScannerDisabled(t *testing.T) {
24852485
value = store.Metrics().DecommissioningRangeCount.Value()
24862486
case "enqueue":
24872487
value = store.Metrics().DecommissioningNudgerEnqueue.Count()
2488-
case "not_leaseholder_or_invalid_lease":
2489-
value = store.Metrics().DecommissioningNudgerNotLeaseholderOrInvalidLease.Count()
2488+
case "enqueue_success":
2489+
value = store.Metrics().DecommissioningNudgerEnqueueSuccess.Count()
2490+
case "process_success":
2491+
value = store.Metrics().DecommissioningNudgerProcessSuccess.Count()
24902492
default:
24912493
t.Fatalf("unknown metric type: %s", metricType)
24922494
}
@@ -2507,9 +2509,10 @@ func TestReplicateQueueDecommissionScannerDisabled(t *testing.T) {
25072509

25082510
// Wait for the enqueue logic to trigger and validate metrics were updated.
25092511
testutils.SucceedsSoon(t, func() error {
2512+
// TODO(wenyihu6): is there a race condition here where we might not observe
2513+
// decommissioning_ranges increasing?
25102514
afterDecommissioningRanges := getDecommissioningNudgerMetricValue(t, tc, "decommissioning_ranges")
25112515
afterEnqueued := getDecommissioningNudgerMetricValue(t, tc, "enqueue")
2512-
25132516
if afterDecommissioningRanges <= initialDecommissioningRanges {
25142517
return errors.New("expected DecommissioningRangeCount to increase")
25152518
}
@@ -2532,4 +2535,8 @@ func TestReplicateQueueDecommissionScannerDisabled(t *testing.T) {
25322535
}
25332536
return nil
25342537
})
2538+
afterEnqueueSuccess := getDecommissioningNudgerMetricValue(t, tc, "enqueue_success")
2539+
require.Greater(t, afterEnqueueSuccess, int64(0))
2540+
afterProcessSuccess := getDecommissioningNudgerMetricValue(t, tc, "process_success")
2541+
require.Greater(t, afterProcessSuccess, int64(0))
25352542
}

0 commit comments

Comments
 (0)