Skip to content

Commit c301eba

Browse files
committed
kvserver: test metrics in TestBaseQueueCallback* and TestReplicateQueueDecommissionScannerDisabled
his commit extends TestBaseQueueCallback* and TestReplicateQueueDecommissionScannerDisabled to also verify metric updates.
1 parent 47425ed commit c301eba

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
@@ -112,6 +112,8 @@ func makeTestBaseQueue(name string, impl queueImpl, store *Store, cfg queueConfi
112112
cfg.pending = metric.NewGauge(metric.Metadata{Name: "pending"})
113113
cfg.processingNanos = metric.NewCounter(metric.Metadata{Name: "processingnanos"})
114114
cfg.purgatory = metric.NewGauge(metric.Metadata{Name: "purgatory"})
115+
cfg.enqueueAdd = metric.NewCounter(metric.Metadata{Name: "enqueueadd"})
116+
cfg.enqueueUnexpectedError = metric.NewCounter(metric.Metadata{Name: "enqueueunexpectederror"})
115117
cfg.disabledConfig = testQueueEnabled
116118
return newBaseQueue(name, impl, store, cfg)
117119
}
@@ -1328,6 +1330,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13281330
t.Fatal("unexpected call to onProcessResult")
13291331
},
13301332
})
1333+
require.Equal(t, bq.enqueueAdd.Count(), int64(1))
13311334
require.True(t, queued)
13321335
})
13331336

@@ -1354,6 +1357,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13541357
t.Fatal("unexpected call to onProcessResult")
13551358
},
13561359
})
1360+
require.Equal(t, int64(i+1), bq.enqueueAdd.Count())
13571361
require.True(t, queued)
13581362
}
13591363
// Set range id back to 1.
@@ -1374,6 +1378,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13741378
t.Fatal("unexpected call to onProcessResult")
13751379
},
13761380
})
1381+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1382+
require.Equal(t, int64(1), bq.enqueueUnexpectedError.Count())
13771383
require.False(t, queued)
13781384
})
13791385
t.Run("stopped", func(t *testing.T) {
@@ -1392,6 +1398,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13921398
},
13931399
})
13941400
require.False(t, queued)
1401+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1402+
require.Equal(t, int64(1), bq.enqueueUnexpectedError.Count())
13951403
})
13961404

13971405
t.Run("alreadyqueued", func(t *testing.T) {
@@ -1409,6 +1417,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14091417
},
14101418
})
14111419
require.True(t, queued)
1420+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1421+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14121422

14131423
// Inserting again on the same range id should fail.
14141424
queued, _ = bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
@@ -1421,6 +1431,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14211431
},
14221432
})
14231433
require.False(t, queued)
1434+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1435+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14241436
})
14251437

14261438
t.Run("purgatory", func(t *testing.T) {
@@ -1444,6 +1456,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14441456
},
14451457
})
14461458
require.False(t, queued)
1459+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1460+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14471461
})
14481462

14491463
t.Run("processing", func(t *testing.T) {
@@ -1455,7 +1469,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14551469
item.setProcessing()
14561470
bq.addLocked(item)
14571471
// Inserting a range that is already being processed should not enqueue again.
1458-
requeued, _ := bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
1472+
markedAsRequeued, _ := bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
14591473
onEnqueueResult: func(indexOnHeap int, err error) {
14601474
require.Equal(t, -1, indexOnHeap)
14611475
require.ErrorIs(t, err, errReplicaAlreadyProcessing)
@@ -1464,7 +1478,9 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14641478
t.Fatal("unexpected call to onProcessResult")
14651479
},
14661480
})
1467-
require.True(t, requeued)
1481+
require.True(t, markedAsRequeued)
1482+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1483+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14681484
})
14691485
t.Run("fullqueue", func(t *testing.T) {
14701486
testQueue := &testQueueImpl{}
@@ -1484,6 +1500,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14841500
},
14851501
})
14861502
require.True(t, queued)
1503+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1504+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14871505
})
14881506
}
14891507

pkg/kv/kvserver/replicate_queue_test.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2482,8 +2482,10 @@ func TestReplicateQueueDecommissionScannerDisabled(t *testing.T) {
24822482
value = store.Metrics().DecommissioningRangeCount.Value()
24832483
case "enqueue":
24842484
value = store.Metrics().DecommissioningNudgerEnqueue.Count()
2485-
case "not_leaseholder_or_invalid_lease":
2486-
value = store.Metrics().DecommissioningNudgerNotLeaseholderOrInvalidLease.Count()
2485+
case "enqueue_success":
2486+
value = store.Metrics().DecommissioningNudgerEnqueueSuccess.Count()
2487+
case "process_success":
2488+
value = store.Metrics().DecommissioningNudgerProcessSuccess.Count()
24872489
default:
24882490
t.Fatalf("unknown metric type: %s", metricType)
24892491
}
@@ -2504,9 +2506,10 @@ func TestReplicateQueueDecommissionScannerDisabled(t *testing.T) {
25042506

25052507
// Wait for the enqueue logic to trigger and validate metrics were updated.
25062508
testutils.SucceedsSoon(t, func() error {
2509+
// TODO(wenyihu6): is there a race condition here where we might not observe
2510+
// decommissioning_ranges increasing?
25072511
afterDecommissioningRanges := getDecommissioningNudgerMetricValue(t, tc, "decommissioning_ranges")
25082512
afterEnqueued := getDecommissioningNudgerMetricValue(t, tc, "enqueue")
2509-
25102513
if afterDecommissioningRanges <= initialDecommissioningRanges {
25112514
return errors.New("expected DecommissioningRangeCount to increase")
25122515
}
@@ -2529,4 +2532,8 @@ func TestReplicateQueueDecommissionScannerDisabled(t *testing.T) {
25292532
}
25302533
return nil
25312534
})
2535+
afterEnqueueSuccess := getDecommissioningNudgerMetricValue(t, tc, "enqueue_success")
2536+
require.Greater(t, afterEnqueueSuccess, int64(0))
2537+
afterProcessSuccess := getDecommissioningNudgerMetricValue(t, tc, "process_success")
2538+
require.Greater(t, afterProcessSuccess, int64(0))
25322539
}

0 commit comments

Comments
 (0)