From 87c7401eb853678da804ff503e266daeef5ad126 Mon Sep 17 00:00:00 2001 From: Abu Kashem Date: Wed, 13 Oct 2021 10:14:30 -0400 Subject: [PATCH] apf: include queue sum stats in debug --- .../pkg/util/flowcontrol/apf_controller_debug.go | 13 ++++++++++++- .../apiserver/pkg/util/flowcontrol/debug/dump.go | 7 +++++++ .../util/flowcontrol/fairqueuing/queueset/types.go | 9 ++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller_debug.go b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller_debug.go index 3c2c9fc744d..8d2bc7b36db 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller_debug.go +++ b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller_debug.go @@ -19,6 +19,7 @@ package flowcontrol import ( "fmt" "io" + "k8s.io/apiserver/pkg/util/flowcontrol/debug" "net/http" "strconv" "strings" @@ -103,6 +104,9 @@ func (cfgCtlr *configController) dumpQueues(w http.ResponseWriter, r *http.Reque "PendingRequests", // 3 "ExecutingRequests", // 4 "VirtualStart", // 5 + "InitialSeatsSum", // 6 + "MaxSeatsSum", // 7 + "TotalWorkSum", // 8 } tabPrint(tabWriter, rowForHeaders(columnHeaders)) endLine(tabWriter) @@ -114,6 +118,9 @@ func (cfgCtlr *configController) dumpQueues(w http.ResponseWriter, r *http.Reque "", // 3 "", // 4 "", // 5 + "", // 6 + "", // 7 + "", // 8 )) endLine(tabWriter) continue @@ -126,6 +133,7 @@ func (cfgCtlr *configController) dumpQueues(w http.ResponseWriter, r *http.Reque len(q.Requests), // 3 q.ExecutingRequests, // 4 q.VirtualStart, // 5 + q.QueueSum, // 6, 7, 8 )) endLine(tabWriter) } @@ -229,13 +237,16 @@ func rowForPriorityLevel(plName string, activeQueues int, isIdle, isQuiescing bo ) } -func rowForQueue(plName string, index, waitingRequests, executingRequests int, virtualStart float64) string { +func rowForQueue(plName string, index, waitingRequests, executingRequests int, virtualStart float64, sum debug.QueueSum) string { return row( plName, strconv.Itoa(index), strconv.Itoa(waitingRequests), strconv.Itoa(executingRequests), fmt.Sprintf("%.4f", virtualStart), + strconv.Itoa(sum.InitialSeatsSum), + strconv.Itoa(sum.MaxSeatsSum), + sum.TotalWorkSum, ) } diff --git a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/debug/dump.go b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/debug/dump.go index 9d50c3e21a2..3cac2730905 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/debug/dump.go +++ b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/debug/dump.go @@ -32,12 +32,19 @@ type QueueSetDump struct { // QueueDump is an instant dump of one queue in a queue-set. type QueueDump struct { + QueueSum QueueSum Requests []RequestDump VirtualStart float64 ExecutingRequests int SeatsInUse int } +type QueueSum struct { + InitialSeatsSum int + MaxSeatsSum int + TotalWorkSum string +} + // RequestDump is an instant dump of one requests pending in the queue. type RequestDump struct { MatchedFlowSchema string diff --git a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/types.go b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/types.go index b2e36f635a8..6c3cf2b1f89 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/types.go +++ b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/types.go @@ -173,12 +173,19 @@ func (q *queue) dump(includeDetails bool) debug.QueueDump { return true }) - // TODO: change QueueDump to include queueSum stats + sum := q.requests.QueueSum() + queueSum := debug.QueueSum{ + InitialSeatsSum: sum.InitialSeatsSum, + MaxSeatsSum: sum.MaxSeatsSum, + TotalWorkSum: sum.TotalWorkSum.String(), + } + return debug.QueueDump{ VirtualStart: q.nextDispatchR.ToFloat(), // TODO: change QueueDump to use SeatSeconds Requests: digest, ExecutingRequests: q.requestsExecuting, SeatsInUse: q.seatsInUse, + QueueSum: queueSum, } }