diff --git a/go.mod b/go.mod index 7f0d66a2d..1ed20f591 100644 --- a/go.mod +++ b/go.mod @@ -44,7 +44,7 @@ require ( k8s.io/api v0.0.0-20230706062605-a69cc64b8aea k8s.io/apimachinery v0.0.0-20230628220152-83d6d372b1a4 k8s.io/client-go v0.0.0-20230706063706-5d8fd6bf0a71 - k8s.io/component-base v0.0.0-20230629215145-b8f9f7cc1db2 + k8s.io/component-base v0.0.0-20230706070231-63369697f0ec k8s.io/klog/v2 v2.100.1 k8s.io/kms v0.0.0-20230619011758-484bb0d20287 k8s.io/kube-openapi v0.0.0-20230601164746-7562a1006961 @@ -128,6 +128,6 @@ replace ( k8s.io/api => k8s.io/api v0.0.0-20230706062605-a69cc64b8aea k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20230628220152-83d6d372b1a4 k8s.io/client-go => k8s.io/client-go v0.0.0-20230706063706-5d8fd6bf0a71 - k8s.io/component-base => k8s.io/component-base v0.0.0-20230629215145-b8f9f7cc1db2 + k8s.io/component-base => k8s.io/component-base v0.0.0-20230706070231-63369697f0ec k8s.io/kms => k8s.io/kms v0.0.0-20230619011758-484bb0d20287 ) diff --git a/go.sum b/go.sum index 4e481b2fe..9dd9630c5 100644 --- a/go.sum +++ b/go.sum @@ -674,8 +674,8 @@ k8s.io/apimachinery v0.0.0-20230628220152-83d6d372b1a4 h1:ntS2ZHGzNY/ISRKPPU937L k8s.io/apimachinery v0.0.0-20230628220152-83d6d372b1a4/go.mod h1:tAiIbF8KB8+Ri2DfUWwZGwNOThIwM0fhXLnOymriu+4= k8s.io/client-go v0.0.0-20230706063706-5d8fd6bf0a71 h1:g8LfyE9Rv2qb4Oen12UgefQtqtR6UzN4fXGnhGNJjow= k8s.io/client-go v0.0.0-20230706063706-5d8fd6bf0a71/go.mod h1:ZpAEvaNK1G5zw2NdLfh0nDbdNijaDGbP6OO9ftDqPpk= -k8s.io/component-base v0.0.0-20230629215145-b8f9f7cc1db2 h1:res0K6caIh79PJuWtgXA20Z1LU1x/5HuleTMfTRK60A= -k8s.io/component-base v0.0.0-20230629215145-b8f9f7cc1db2/go.mod h1:L3xI7trKI8CnqSv3XAzcYPs5OUTxutc6qDyXt75tJvY= +k8s.io/component-base v0.0.0-20230706070231-63369697f0ec h1:Jp8V9IROgsd7hlRayWEwme9biJBB2cibC0CpP2HGveU= +k8s.io/component-base v0.0.0-20230706070231-63369697f0ec/go.mod h1:aiE+qizM73R49NuVbaxClSQu2Yj+zIDCEN6OY8Zcp3w= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kms v0.0.0-20230619011758-484bb0d20287 h1:Vg6e1YgSgGMHIh3drUHYjKG3ppnI7w4dVC7zxJQ8oB4= diff --git a/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go b/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go index b01671586..8ae888549 100644 --- a/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go +++ b/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go @@ -726,7 +726,7 @@ func (qs *queueSet) dispatchSansQueueLocked(ctx context.Context, workEstimate *f qs.totRequestsExecuting++ qs.totSeatsInUse += req.MaxSeats() metrics.AddRequestsExecuting(ctx, qs.qCfg.Name, fsName, 1) - metrics.AddRequestConcurrencyInUse(qs.qCfg.Name, fsName, req.MaxSeats()) + metrics.AddSeatConcurrencyInUse(qs.qCfg.Name, fsName, req.MaxSeats()) qs.reqsGaugePair.RequestsExecuting.Add(1) qs.execSeatsGauge.Add(float64(req.MaxSeats())) qs.seatDemandIntegrator.Set(float64(qs.totSeatsInUse + qs.totSeatsWaiting)) @@ -771,7 +771,7 @@ func (qs *queueSet) dispatchLocked() bool { queue.requestsExecuting++ queue.seatsInUse += request.MaxSeats() metrics.AddRequestsExecuting(request.ctx, qs.qCfg.Name, request.fsName, 1) - metrics.AddRequestConcurrencyInUse(qs.qCfg.Name, request.fsName, request.MaxSeats()) + metrics.AddSeatConcurrencyInUse(qs.qCfg.Name, request.fsName, request.MaxSeats()) qs.reqsGaugePair.RequestsExecuting.Add(1) qs.execSeatsGauge.Add(float64(request.MaxSeats())) qs.seatDemandIntegrator.Set(float64(qs.totSeatsInUse + qs.totSeatsWaiting)) @@ -938,7 +938,7 @@ func (qs *queueSet) finishRequestLocked(r *request) { defer qs.removeQueueIfEmptyLocked(r) qs.totSeatsInUse -= r.MaxSeats() - metrics.AddRequestConcurrencyInUse(qs.qCfg.Name, r.fsName, -r.MaxSeats()) + metrics.AddSeatConcurrencyInUse(qs.qCfg.Name, r.fsName, -r.MaxSeats()) qs.execSeatsGauge.Add(-float64(r.MaxSeats())) qs.seatDemandIntegrator.Set(float64(qs.totSeatsInUse + qs.totSeatsWaiting)) if r.queue != nil { diff --git a/pkg/util/flowcontrol/metrics/metrics.go b/pkg/util/flowcontrol/metrics/metrics.go index a6b22a1a6..441fc058a 100644 --- a/pkg/util/flowcontrol/metrics/metrics.go +++ b/pkg/util/flowcontrol/metrics/metrics.go @@ -241,16 +241,27 @@ var ( }, []string{priorityLevel, flowSchema}, ) - apiserverRequestConcurrencyInUse = compbasemetrics.NewGaugeVec( + apiserverCurrentExecutingSeats = compbasemetrics.NewGaugeVec( &compbasemetrics.GaugeOpts{ Namespace: namespace, Subsystem: subsystem, - Name: "request_concurrency_in_use", + Name: "current_executing_seats", Help: "Concurrency (number of seats) occupied by the currently executing (initial stage for a WATCH, any stage otherwise) requests in the API Priority and Fairness subsystem", StabilityLevel: compbasemetrics.ALPHA, }, []string{priorityLevel, flowSchema}, ) + apiserverRequestConcurrencyInUse = compbasemetrics.NewGaugeVec( + &compbasemetrics.GaugeOpts{ + Namespace: namespace, + Subsystem: subsystem, + Name: "request_concurrency_in_use", + Help: "Concurrency (number of seats) occupied by the currently executing (initial stage for a WATCH, any stage otherwise) requests in the API Priority and Fairness subsystem", + DeprecatedVersion: "1.28.0", + StabilityLevel: compbasemetrics.ALPHA, + }, + []string{priorityLevel, flowSchema}, + ) apiserverRequestWaitingSeconds = compbasemetrics.NewHistogramVec( &compbasemetrics.HistogramOpts{ Namespace: namespace, @@ -444,6 +455,7 @@ var ( apiserverRequestQueueLength, apiserverRequestConcurrencyLimit, apiserverRequestConcurrencyInUse, + apiserverCurrentExecutingSeats, apiserverCurrentExecutingRequests, apiserverRequestWaitingSeconds, apiserverRequestExecutionSeconds, @@ -523,9 +535,10 @@ func SetDispatchMetrics(priorityLevel string, r, s, sMin, sMax, discountedSMin, apiserverNextDiscountedSBounds.WithLabelValues(priorityLevel, "max").Set(discountedSMax) } -// AddRequestConcurrencyInUse adds the given delta to the gauge of concurrency in use by +// AddSeatConcurrencyInUse adds the given delta to the gauge of seats in use by // the currently executing requests of the given flowSchema and priorityLevel -func AddRequestConcurrencyInUse(priorityLevel, flowSchema string, delta int) { +func AddSeatConcurrencyInUse(priorityLevel, flowSchema string, delta int) { + apiserverCurrentExecutingSeats.WithLabelValues(priorityLevel, flowSchema).Add(float64(delta)) apiserverRequestConcurrencyInUse.WithLabelValues(priorityLevel, flowSchema).Add(float64(delta)) }