mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +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.
|
// 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.
|
// 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) {
|
func (p Parallelizer) Until(ctx context.Context, pieces int, doWorkPiece workqueue.DoWorkPieceFunc, operation string) {
|
||||||
|
goroutinesMetric := metrics.Goroutines.WithLabelValues(operation)
|
||||||
withMetrics := func(piece int) {
|
withMetrics := func(piece int) {
|
||||||
metrics.Goroutines.WithLabelValues(operation).Inc()
|
goroutinesMetric.Inc()
|
||||||
defer metrics.Goroutines.WithLabelValues(operation).Dec()
|
|
||||||
doWorkPiece(piece)
|
doWorkPiece(piece)
|
||||||
|
goroutinesMetric.Dec()
|
||||||
}
|
}
|
||||||
|
|
||||||
workqueue.ParallelizeUntil(ctx, p.parallelism, pieces, withMetrics, workqueue.WithChunkSize(chunkSizeFor(pieces, p.parallelism)))
|
workqueue.ParallelizeUntil(ctx, p.parallelism, pieces, withMetrics, workqueue.WithChunkSize(chunkSizeFor(pieces, p.parallelism)))
|
||||||
|
Loading…
Reference in New Issue
Block a user