mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #105674 from tkashem/apf-debug
apf: include seat information in per request debug dump
This commit is contained in:
commit
0cef26182c
@ -159,18 +159,21 @@ func (cfgCtlr *configController) dumpRequests(w http.ResponseWriter, r *http.Req
|
||||
"RequestIndexInQueue", // 4
|
||||
"FlowDistingsher", // 5
|
||||
"ArriveTime", // 6
|
||||
"InitialSeats", // 7
|
||||
"FinalSeats", // 8
|
||||
"AdditionalLatency", // 9
|
||||
}))
|
||||
if includeRequestDetails {
|
||||
continueLine(tabWriter)
|
||||
tabPrint(tabWriter, rowForHeaders([]string{
|
||||
"UserName", // 7
|
||||
"Verb", // 8
|
||||
"APIPath", // 9
|
||||
"Namespace", // 10
|
||||
"Name", // 11
|
||||
"APIVersion", // 12
|
||||
"Resource", // 13
|
||||
"SubResource", // 14
|
||||
"UserName", // 10
|
||||
"Verb", // 11
|
||||
"APIPath", // 12
|
||||
"Namespace", // 13
|
||||
"Name", // 14
|
||||
"APIVersion", // 15
|
||||
"Resource", // 16
|
||||
"SubResource", // 17
|
||||
}))
|
||||
}
|
||||
endLine(tabWriter)
|
||||
@ -181,28 +184,31 @@ func (cfgCtlr *configController) dumpRequests(w http.ResponseWriter, r *http.Req
|
||||
queueSetDigest := plState.queues.Dump(includeRequestDetails)
|
||||
for iq, q := range queueSetDigest.Queues {
|
||||
for ir, r := range q.Requests {
|
||||
tabPrint(tabWriter, rowForRequest(
|
||||
tabPrint(tabWriter, row(
|
||||
plState.pl.Name, // 1
|
||||
r.MatchedFlowSchema, // 2
|
||||
iq, // 3
|
||||
ir, // 4
|
||||
strconv.Itoa(iq), // 3
|
||||
strconv.Itoa(ir), // 4
|
||||
r.FlowDistinguisher, // 5
|
||||
r.ArriveTime, // 6
|
||||
r.ArriveTime.UTC().Format(time.RFC3339Nano), // 6
|
||||
strconv.Itoa(int(r.WorkEstimate.InitialSeats)), // 7
|
||||
strconv.Itoa(int(r.WorkEstimate.FinalSeats)), // 8
|
||||
r.WorkEstimate.AdditionalLatency.String(), // 9
|
||||
))
|
||||
if includeRequestDetails {
|
||||
continueLine(tabWriter)
|
||||
tabPrint(tabWriter, rowForRequestDetails(
|
||||
r.UserName, // 7
|
||||
r.RequestInfo.Verb, // 8
|
||||
r.RequestInfo.Path, // 9
|
||||
r.RequestInfo.Namespace, // 10
|
||||
r.RequestInfo.Name, // 11
|
||||
r.UserName, // 10
|
||||
r.RequestInfo.Verb, // 11
|
||||
r.RequestInfo.Path, // 12
|
||||
r.RequestInfo.Namespace, // 13
|
||||
r.RequestInfo.Name, // 14
|
||||
schema.GroupVersion{
|
||||
Group: r.RequestInfo.APIGroup,
|
||||
Version: r.RequestInfo.APIVersion,
|
||||
}.String(), // 12
|
||||
r.RequestInfo.Resource, // 13
|
||||
r.RequestInfo.Subresource, // 14
|
||||
}.String(), // 15
|
||||
r.RequestInfo.Resource, // 16
|
||||
r.RequestInfo.Subresource, // 17
|
||||
))
|
||||
}
|
||||
endLine(tabWriter)
|
||||
@ -241,17 +247,6 @@ func rowForPriorityLevel(plName string, activeQueues int, isIdle, isQuiescing bo
|
||||
)
|
||||
}
|
||||
|
||||
func rowForRequest(plName, fsName string, queueIndex, requestIndex int, flowDistinguisher string, arriveTime time.Time) string {
|
||||
return row(
|
||||
plName,
|
||||
fsName,
|
||||
strconv.Itoa(queueIndex),
|
||||
strconv.Itoa(requestIndex),
|
||||
flowDistinguisher,
|
||||
arriveTime.UTC().Format(time.RFC3339Nano),
|
||||
)
|
||||
}
|
||||
|
||||
func rowForRequestDetails(username, verb, path, namespace, name, apiVersion, resource, subResource string) string {
|
||||
return row(
|
||||
username,
|
||||
|
@ -20,6 +20,7 @@ import (
|
||||
"time"
|
||||
|
||||
"k8s.io/apiserver/pkg/endpoints/request"
|
||||
flowcontrolrequest "k8s.io/apiserver/pkg/util/flowcontrol/request"
|
||||
)
|
||||
|
||||
// QueueSetDump is an instant dump of queue-set.
|
||||
@ -51,6 +52,7 @@ type RequestDump struct {
|
||||
FlowDistinguisher string
|
||||
ArriveTime time.Time
|
||||
StartTime time.Time
|
||||
WorkEstimate flowcontrolrequest.WorkEstimate
|
||||
// request details
|
||||
UserName string
|
||||
RequestInfo request.RequestInfo
|
||||
|
@ -161,6 +161,7 @@ func (q *queue) dump(includeDetails bool) debug.QueueDump {
|
||||
digest[i].FlowDistinguisher = r.flowDistinguisher
|
||||
digest[i].ArriveTime = r.arrivalTime
|
||||
digest[i].StartTime = r.startTime
|
||||
digest[i].WorkEstimate = r.workEstimate.WorkEstimate
|
||||
if includeDetails {
|
||||
userInfo, _ := genericrequest.UserFrom(r.ctx)
|
||||
digest[i].UserName = userInfo.GetName()
|
||||
|
Loading…
Reference in New Issue
Block a user