Skip to content

Commit 26bacec

Browse files
committed
kvserver: test metrics in TestBaseQueueCallback* and TestReplicateQueueDecommissionScannerDisabled
his commit extends TestBaseQueueCallback* and TestReplicateQueueDecommissionScannerDisabled to also verify metric updates.
1 parent 094259e commit 26bacec

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
@@ -110,6 +110,8 @@ func makeTestBaseQueue(name string, impl queueImpl, store *Store, cfg queueConfi
110110
cfg.pending = metric.NewGauge(metric.Metadata{Name: "pending"})
111111
cfg.processingNanos = metric.NewCounter(metric.Metadata{Name: "processingnanos"})
112112
cfg.purgatory = metric.NewGauge(metric.Metadata{Name: "purgatory"})
113+
cfg.enqueueAdd = metric.NewCounter(metric.Metadata{Name: "enqueueadd"})
114+
cfg.enqueueUnexpectedError = metric.NewCounter(metric.Metadata{Name: "enqueueunexpectederror"})
113115
cfg.disabledConfig = testQueueEnabled
114116
return newBaseQueue(name, impl, store, cfg)
115117
}
@@ -1326,6 +1328,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13261328
t.Fatal("unexpected call to onProcessResult")
13271329
},
13281330
})
1331+
require.Equal(t, bq.enqueueAdd.Count(), int64(1))
13291332
require.True(t, queued)
13301333
})
13311334

@@ -1352,6 +1355,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13521355
t.Fatal("unexpected call to onProcessResult")
13531356
},
13541357
})
1358+
require.Equal(t, int64(i+1), bq.enqueueAdd.Count())
13551359
require.True(t, queued)
13561360
}
13571361
// Set range id back to 1.
@@ -1372,6 +1376,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13721376
t.Fatal("unexpected call to onProcessResult")
13731377
},
13741378
})
1379+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1380+
require.Equal(t, int64(1), bq.enqueueUnexpectedError.Count())
13751381
require.False(t, queued)
13761382
})
13771383
t.Run("stopped", func(t *testing.T) {
@@ -1390,6 +1396,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
13901396
},
13911397
})
13921398
require.False(t, queued)
1399+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1400+
require.Equal(t, int64(1), bq.enqueueUnexpectedError.Count())
13931401
})
13941402

13951403
t.Run("alreadyqueued", func(t *testing.T) {
@@ -1407,6 +1415,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14071415
},
14081416
})
14091417
require.True(t, queued)
1418+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1419+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14101420

14111421
// Inserting again on the same range id should fail.
14121422
queued, _ = bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
@@ -1419,6 +1429,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14191429
},
14201430
})
14211431
require.False(t, queued)
1432+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1433+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14221434
})
14231435

14241436
t.Run("purgatory", func(t *testing.T) {
@@ -1442,6 +1454,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14421454
},
14431455
})
14441456
require.False(t, queued)
1457+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1458+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14451459
})
14461460

14471461
t.Run("processing", func(t *testing.T) {
@@ -1453,7 +1467,7 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14531467
item.setProcessing()
14541468
bq.addLocked(item)
14551469
// Inserting a range that is already being processed should not enqueue again.
1456-
requeued, _ := bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
1470+
markedAsRequeued, _ := bq.testingAddWithCallback(ctx, r, 1.0, processCallback{
14571471
onEnqueueResult: func(indexOnHeap int, err error) {
14581472
require.Equal(t, -1, indexOnHeap)
14591473
require.ErrorIs(t, err, errReplicaAlreadyProcessing)
@@ -1462,7 +1476,9 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14621476
t.Fatal("unexpected call to onProcessResult")
14631477
},
14641478
})
1465-
require.True(t, requeued)
1479+
require.True(t, markedAsRequeued)
1480+
require.Equal(t, int64(0), bq.enqueueAdd.Count())
1481+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14661482
})
14671483
t.Run("fullqueue", func(t *testing.T) {
14681484
testQueue := &testQueueImpl{}
@@ -1482,6 +1498,8 @@ func TestBaseQueueCallbackOnEnqueueResult(t *testing.T) {
14821498
},
14831499
})
14841500
require.True(t, queued)
1501+
require.Equal(t, int64(1), bq.enqueueAdd.Count())
1502+
require.Equal(t, int64(0), bq.enqueueUnexpectedError.Count())
14851503
})
14861504
}
14871505

pkg/kv/kvserver/replicate_queue_test.go

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

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

0 commit comments

Comments
 (0)