@@ -338,90 +338,6 @@ var (
338338 Measurement : "Replicas" ,
339339 Unit : metric .Unit_COUNT ,
340340 }
341- metaReplicateQueuePriorityInversionForAddVoterCount = metric.Metadata {
342- Name : "queue.replicate.priority_inversion.addvoter" ,
343- Help : "Number of priority inversions in the replicate queue that resulted in add voter action during processing" ,
344- Measurement : "Replicas" ,
345- Unit : metric .Unit_COUNT ,
346- }
347- metaReplicateQueuePriorityInversionForReplaceDecommissioningVoterCount = metric.Metadata {
348- Name : "queue.replicate.priority_inversion.replacedecommissioningvoter" ,
349- Help : "Number of priority inversions in the replicate queue that resulted in replace decommissioning voter action during processing" ,
350- Measurement : "Replicas" ,
351- Unit : metric .Unit_COUNT ,
352- }
353- metaReplicateQueuePriorityInversionForRemoveDeadVoterCount = metric.Metadata {
354- Name : "queue.replicate.priority_inversion.removedeadvoter" ,
355- Help : "Number of priority inversions in the replicate queue that resulted in remove dead voter action during processing" ,
356- Measurement : "Replicas" ,
357- Unit : metric .Unit_COUNT ,
358- }
359- metaReplicateQueuePriorityInversionForRemoveDecommissioningVoterCount = metric.Metadata {
360- Name : "queue.replicate.priority_inversion.removedecommissioningvoter" ,
361- Help : "Number of priority inversions in the replicate queue that resulted in remove decommissioning voter action during processing" ,
362- Measurement : "Replicas" ,
363- Unit : metric .Unit_COUNT ,
364- }
365- metaReplicateQueuePriorityInversionForRemoveVoterCount = metric.Metadata {
366- Name : "queue.replicate.priority_inversion.removevoter" ,
367- Help : "Number of priority inversions in the replicate queue that resulted in remove voter action during processing" ,
368- Measurement : "Replicas" ,
369- Unit : metric .Unit_COUNT ,
370- }
371- metaReplicateQueuePriorityInversionForReplaceDeadNonVoterCount = metric.Metadata {
372- Name : "queue.replicate.priority_inversion.replacedeadnonvoter" ,
373- Help : "Number of priority inversions in the replicate queue that resulted in replace dead non-voter action during processing" ,
374- Measurement : "Replicas" ,
375- Unit : metric .Unit_COUNT ,
376- }
377- metaReplicateQueuePriorityInversionForAddNonVoterCount = metric.Metadata {
378- Name : "queue.replicate.priority_inversion.addnonvoter" ,
379- Help : "Number of priority inversions in the replicate queue that resulted in add non-voter action during processing" ,
380- Measurement : "Replicas" ,
381- Unit : metric .Unit_COUNT ,
382- }
383- metaReplicateQueuePriorityInversionForReplaceDecommissioningNonVoterCount = metric.Metadata {
384- Name : "queue.replicate.priority_inversion.replacedecommissioningnonvoter" ,
385- Help : "Number of priority inversions in the replicate queue that resulted in replace decommissioning non-voter action during processing" ,
386- Measurement : "Replicas" ,
387- Unit : metric .Unit_COUNT ,
388- }
389- metaReplicateQueuePriorityInversionForRemoveDeadNonVoterCount = metric.Metadata {
390- Name : "queue.replicate.priority_inversion.removedeadnonvoter" ,
391- Help : "Number of priority inversions in the replicate queue that resulted in remove dead non-voter action during processing" ,
392- Measurement : "Replicas" ,
393- Unit : metric .Unit_COUNT ,
394- }
395- metaReplicateQueuePriorityInversionForRemoveDecommissioningNonVoterCount = metric.Metadata {
396- Name : "queue.replicate.priority_inversion.removedecommissioningnonvoter" ,
397- Help : "Number of priority inversions in the replicate queue that resulted in remove decommissioning non-voter action during processing" ,
398- Measurement : "Replicas" ,
399- Unit : metric .Unit_COUNT ,
400- }
401- metaReplicateQueuePriorityInversionForRemoveNonVoterCount = metric.Metadata {
402- Name : "queue.replicate.priority_inversion.removenonvoter" ,
403- Help : "Number of priority inversions in the replicate queue that resulted in remove non-voter action during processing" ,
404- Measurement : "Replicas" ,
405- Unit : metric .Unit_COUNT ,
406- }
407- metaReplicateQueuePriorityInversionForConsiderRebalance = metric.Metadata {
408- Name : "queue.replicate.priority_inversion.considerrebalance" ,
409- Help : "Number of priority inversions in the replicate queue that resulted in consider rebalance action during processing" ,
410- Measurement : "Replicas" ,
411- Unit : metric .Unit_COUNT ,
412- }
413- metaReplicateQueuePriorityInversionForRangeUnavailable = metric.Metadata {
414- Name : "queue.replicate.priority_inversion.rangeunavailable" ,
415- Help : "Number of priority inversions in the replicate queue that resulted in range unavailable action during processing" ,
416- Measurement : "Replicas" ,
417- Unit : metric .Unit_COUNT ,
418- }
419- metaReplicateQueuePriorityInversionForNoop = metric.Metadata {
420- Name : "queue.replicate.priority_inversion.noop" ,
421- Help : "Number of priority inversions in the replicate queue that resulted in noop action during processing" ,
422- Measurement : "Replicas" ,
423- Unit : metric .Unit_COUNT ,
424- }
425341)
426342
427343// quorumError indicates a retryable error condition which sends replicas being
@@ -483,26 +399,9 @@ type ReplicateQueueMetrics struct {
483399 // AllocatorConsiderRebalance, and AllocatorFinalizeAtomicReplicationChange
484400 // allocator actions.
485401
486- // Priority Inversion. Not tracked for
487- // AllocatorFinalizeAtomicReplicationChange, AllocatorRemoveLearner,
488- // AllocatorReplaceDeadVoter since they are the highest priority actions and
489- // cannot be inverted. (17 total actions-3=14)
490- RequeueDueToPriorityInversion * metric.Counter
491- PriorityInversionTotal * metric.Counter
492- PriorityInversionForAddVoterCount * metric.Counter
493- PriorityInversionForReplaceDecommissioningVoterCount * metric.Counter
494- PriorityInversionForRemoveDeadVoterCount * metric.Counter
495- PriorityInversionForRemoveDecommissioningVoterCount * metric.Counter
496- PriorityInversionForRemoveVoterCount * metric.Counter
497- PriorityInversionForReplaceDeadNonVoterCount * metric.Counter
498- PriorityInversionForAddNonVoterCount * metric.Counter
499- PriorityInversionForReplaceDecommissioningNonVoterCount * metric.Counter
500- PriorityInversionForRemoveDeadNonVoterCount * metric.Counter
501- PriorityInversionForRemoveDecommissioningNonVoterCount * metric.Counter
502- PriorityInversionForRemoveNonVoterCount * metric.Counter
503- PriorityInversionForConsiderRebalance * metric.Counter
504- PriorityInversionForRangeUnavailable * metric.Counter
505- PriorityInversionForNoop * metric.Counter
402+ // Priority Inversion.
403+ RequeueDueToPriorityInversion * metric.Counter
404+ PriorityInversionTotal * metric.Counter
506405}
507406
508407func makeReplicateQueueMetrics () ReplicateQueueMetrics {
@@ -540,22 +439,8 @@ func makeReplicateQueueMetrics() ReplicateQueueMetrics {
540439 RemoveDecommissioningReplicaSuccessCount : metric .NewCounter (metaReplicateQueueRemoveDecommissioningReplicaSuccessCount ),
541440 RemoveDecommissioningReplicaErrorCount : metric .NewCounter (metaReplicateQueueRemoveDecommissioningReplicaErrorCount ),
542441
543- RequeueDueToPriorityInversion : metric .NewCounter (metaReplicateQueueRequeueDueToPriorityInversion ),
544- PriorityInversionTotal : metric .NewCounter (metaReplicateQueuePriorityInversionTotal ),
545- PriorityInversionForAddVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForAddVoterCount ),
546- PriorityInversionForReplaceDecommissioningVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForReplaceDecommissioningVoterCount ),
547- PriorityInversionForRemoveDeadVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForRemoveDeadVoterCount ),
548- PriorityInversionForRemoveDecommissioningVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForRemoveDecommissioningVoterCount ),
549- PriorityInversionForRemoveVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForRemoveVoterCount ),
550- PriorityInversionForReplaceDeadNonVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForReplaceDeadNonVoterCount ),
551- PriorityInversionForAddNonVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForAddNonVoterCount ),
552- PriorityInversionForReplaceDecommissioningNonVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForReplaceDecommissioningNonVoterCount ),
553- PriorityInversionForRemoveDeadNonVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForRemoveDeadNonVoterCount ),
554- PriorityInversionForRemoveDecommissioningNonVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForRemoveDecommissioningNonVoterCount ),
555- PriorityInversionForRemoveNonVoterCount : metric .NewCounter (metaReplicateQueuePriorityInversionForRemoveNonVoterCount ),
556- PriorityInversionForConsiderRebalance : metric .NewCounter (metaReplicateQueuePriorityInversionForConsiderRebalance ),
557- PriorityInversionForRangeUnavailable : metric .NewCounter (metaReplicateQueuePriorityInversionForRangeUnavailable ),
558- PriorityInversionForNoop : metric .NewCounter (metaReplicateQueuePriorityInversionForNoop ),
442+ RequeueDueToPriorityInversion : metric .NewCounter (metaReplicateQueueRequeueDueToPriorityInversion ),
443+ PriorityInversionTotal : metric .NewCounter (metaReplicateQueuePriorityInversionTotal ),
559444 }
560445}
561446
@@ -679,47 +564,6 @@ func (metrics *ReplicateQueueMetrics) trackErrorByAllocatorAction(
679564
680565}
681566
682- // trackPriorityInversion tracks the action that the replicate queue ended up
683- // processing when the priority at enqueue time was higher than the priority at
684- // processing time.
685- func (metrics * ReplicateQueueMetrics ) trackPriorityInversion (
686- actionAtProcessingTime allocatorimpl.AllocatorAction ,
687- ) {
688- metrics .PriorityInversionTotal .Inc (1 )
689- switch actionAtProcessingTime {
690- case allocatorimpl .AllocatorAddVoter :
691- metrics .PriorityInversionForAddVoterCount .Inc (1 )
692- case allocatorimpl .AllocatorReplaceDecommissioningVoter :
693- metrics .PriorityInversionForReplaceDecommissioningVoterCount .Inc (1 )
694- case allocatorimpl .AllocatorRemoveDeadVoter :
695- metrics .PriorityInversionForRemoveDeadVoterCount .Inc (1 )
696- case allocatorimpl .AllocatorRemoveDecommissioningVoter :
697- metrics .PriorityInversionForRemoveDecommissioningVoterCount .Inc (1 )
698- case allocatorimpl .AllocatorRemoveVoter :
699- metrics .PriorityInversionForRemoveVoterCount .Inc (1 )
700- case allocatorimpl .AllocatorReplaceDeadNonVoter :
701- metrics .PriorityInversionForReplaceDeadNonVoterCount .Inc (1 )
702- case allocatorimpl .AllocatorAddNonVoter :
703- metrics .PriorityInversionForAddNonVoterCount .Inc (1 )
704- case allocatorimpl .AllocatorReplaceDecommissioningNonVoter :
705- metrics .PriorityInversionForReplaceDecommissioningNonVoterCount .Inc (1 )
706- case allocatorimpl .AllocatorRemoveDeadNonVoter :
707- metrics .PriorityInversionForRemoveDeadNonVoterCount .Inc (1 )
708- case allocatorimpl .AllocatorRemoveDecommissioningNonVoter :
709- metrics .PriorityInversionForRemoveDecommissioningNonVoterCount .Inc (1 )
710- case allocatorimpl .AllocatorRemoveNonVoter :
711- metrics .PriorityInversionForRemoveNonVoterCount .Inc (1 )
712- case allocatorimpl .AllocatorConsiderRebalance :
713- metrics .PriorityInversionForConsiderRebalance .Inc (1 )
714- case allocatorimpl .AllocatorRangeUnavailable :
715- metrics .PriorityInversionForRangeUnavailable .Inc (1 )
716- case allocatorimpl .AllocatorNoop :
717- metrics .PriorityInversionForNoop .Inc (1 )
718- default :
719- panic ("unhandled default case" )
720- }
721- }
722-
723567// trackProcessResult increases the corresponding success/error count metric for
724568// processing a particular allocator action through the replicate queue.
725569func (metrics * ReplicateQueueMetrics ) trackResultByAllocatorAction (
@@ -1135,7 +979,7 @@ func (rq *replicateQueue) processOneChange(
1135979 // starving other higher priority work.
1136980 if PriorityInversionRequeue .Get (& rq .store .cfg .Settings .SV ) {
1137981 if inversion , shouldRequeue := allocatorimpl .CheckPriorityInversion (priorityAtEnqueue , change .Action ); inversion {
1138- rq .metrics .trackPriorityInversion ( change . Action )
982+ rq .metrics .PriorityInversionTotal . Inc ( 1 )
1139983 if priorityInversionLogEveryN .ShouldLog () {
1140984 log .KvDistribution .Infof (ctx ,
1141985 "priority inversion during process: shouldRequeue = %t action=%s, priority=%v, enqueuePriority=%v" ,
0 commit comments