Merge pull request #116428 from mborsz/fix

Avoid metric lookup in Parallelizer.Until on every work piece
This commit is contained in:
Kubernetes Prow Robot 2023-03-09 13:08:29 -08:00 committed by GitHub
commit c67953a2d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)))