mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Avoid metric lookup in Parallelizer.Util on every work piece
This commit is contained in:
parent
f90643435e
commit
30bca1e1d5
@ -54,10 +54,11 @@ func chunkSizeFor(n, parallelism int) int {
|
||||
// Until is a wrapper around workqueue.ParallelizeUntil to use in scheduling algorithms.
|
||||
// A given operation will be a label that is recorded in the goroutine metric.
|
||||
func (p Parallelizer) Until(ctx context.Context, pieces int, doWorkPiece workqueue.DoWorkPieceFunc, operation string) {
|
||||
goroutinesMetric := metrics.Goroutines.WithLabelValues(operation)
|
||||
withMetrics := func(piece int) {
|
||||
metrics.Goroutines.WithLabelValues(operation).Inc()
|
||||
defer metrics.Goroutines.WithLabelValues(operation).Dec()
|
||||
goroutinesMetric.Inc()
|
||||
doWorkPiece(piece)
|
||||
goroutinesMetric.Dec()
|
||||
}
|
||||
|
||||
workqueue.ParallelizeUntil(ctx, p.parallelism, pieces, withMetrics, workqueue.WithChunkSize(chunkSizeFor(pieces, p.parallelism)))
|
||||
|
Loading…
Reference in New Issue
Block a user