mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-18 16:21:13 +00:00
Report scope in e2e test metrics
This commit is contained in:
parent
c13a3c0320
commit
30a92a8f0a
@ -230,6 +230,7 @@ type APICall struct {
|
|||||||
Resource string `json:"resource"`
|
Resource string `json:"resource"`
|
||||||
Subresource string `json:"subresource"`
|
Subresource string `json:"subresource"`
|
||||||
Verb string `json:"verb"`
|
Verb string `json:"verb"`
|
||||||
|
Scope string `json:"scope"`
|
||||||
Latency LatencyMetric `json:"latency"`
|
Latency LatencyMetric `json:"latency"`
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
}
|
}
|
||||||
@ -261,14 +262,14 @@ func (a *APIResponsiveness) Less(i, j int) bool {
|
|||||||
// Set request latency for a particular quantile in the APICall metric entry (creating one if necessary).
|
// Set request latency for a particular quantile in the APICall metric entry (creating one if necessary).
|
||||||
// 0 <= quantile <=1 (e.g. 0.95 is 95%tile, 0.5 is median)
|
// 0 <= quantile <=1 (e.g. 0.95 is 95%tile, 0.5 is median)
|
||||||
// Only 0.5, 0.9 and 0.99 quantiles are supported.
|
// Only 0.5, 0.9 and 0.99 quantiles are supported.
|
||||||
func (a *APIResponsiveness) addMetricRequestLatency(resource, subresource, verb string, quantile float64, latency time.Duration) {
|
func (a *APIResponsiveness) addMetricRequestLatency(resource, subresource, verb, scope string, quantile float64, latency time.Duration) {
|
||||||
for i, apicall := range a.APICalls {
|
for i, apicall := range a.APICalls {
|
||||||
if apicall.Resource == resource && apicall.Subresource == subresource && apicall.Verb == verb {
|
if apicall.Resource == resource && apicall.Subresource == subresource && apicall.Verb == verb && apicall.Scope == scope {
|
||||||
a.APICalls[i] = setQuantileAPICall(apicall, quantile, latency)
|
a.APICalls[i] = setQuantileAPICall(apicall, quantile, latency)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
apicall := setQuantileAPICall(APICall{Resource: resource, Subresource: subresource, Verb: verb}, quantile, latency)
|
apicall := setQuantileAPICall(APICall{Resource: resource, Subresource: subresource, Verb: verb, Scope: scope}, quantile, latency)
|
||||||
a.APICalls = append(a.APICalls, apicall)
|
a.APICalls = append(a.APICalls, apicall)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,14 +293,14 @@ func setQuantile(metric *LatencyMetric, quantile float64, latency time.Duration)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add request count to the APICall metric entry (creating one if necessary).
|
// Add request count to the APICall metric entry (creating one if necessary).
|
||||||
func (a *APIResponsiveness) addMetricRequestCount(resource, subresource, verb string, count int) {
|
func (a *APIResponsiveness) addMetricRequestCount(resource, subresource, verb, scope string, count int) {
|
||||||
for i, apicall := range a.APICalls {
|
for i, apicall := range a.APICalls {
|
||||||
if apicall.Resource == resource && apicall.Subresource == subresource && apicall.Verb == verb {
|
if apicall.Resource == resource && apicall.Subresource == subresource && apicall.Verb == verb && apicall.Scope == scope {
|
||||||
a.APICalls[i].Count += count
|
a.APICalls[i].Count += count
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
apicall := APICall{Resource: resource, Subresource: subresource, Verb: verb, Count: count}
|
apicall := APICall{Resource: resource, Subresource: subresource, Verb: verb, Count: count, Scope: scope}
|
||||||
a.APICalls = append(a.APICalls, apicall)
|
a.APICalls = append(a.APICalls, apicall)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,6 +333,7 @@ func readLatencyMetrics(c clientset.Interface) (*APIResponsiveness, error) {
|
|||||||
resource := string(sample.Metric["resource"])
|
resource := string(sample.Metric["resource"])
|
||||||
subresource := string(sample.Metric["subresource"])
|
subresource := string(sample.Metric["subresource"])
|
||||||
verb := string(sample.Metric["verb"])
|
verb := string(sample.Metric["verb"])
|
||||||
|
scope := string(sample.Metric["scope"])
|
||||||
if ignoredResources.Has(resource) || ignoredVerbs.Has(verb) {
|
if ignoredResources.Has(resource) || ignoredVerbs.Has(verb) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -343,10 +345,10 @@ func readLatencyMetrics(c clientset.Interface) (*APIResponsiveness, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
a.addMetricRequestLatency(resource, subresource, verb, quantile, time.Duration(int64(latency))*time.Microsecond)
|
a.addMetricRequestLatency(resource, subresource, verb, scope, quantile, time.Duration(int64(latency))*time.Microsecond)
|
||||||
case "apiserver_request_count":
|
case "apiserver_request_count":
|
||||||
count := sample.Value
|
count := sample.Value
|
||||||
a.addMetricRequestCount(resource, subresource, verb, int(count))
|
a.addMetricRequestCount(resource, subresource, verb, scope, int(count))
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,7 @@ func ApiCallToPerfData(apicalls *APIResponsiveness) *perftype.PerfData {
|
|||||||
"Verb": apicall.Verb,
|
"Verb": apicall.Verb,
|
||||||
"Resource": apicall.Resource,
|
"Resource": apicall.Resource,
|
||||||
"Subresource": apicall.Subresource,
|
"Subresource": apicall.Subresource,
|
||||||
|
"Scope": apicall.Scope,
|
||||||
"Count": fmt.Sprintf("%v", apicall.Count),
|
"Count": fmt.Sprintf("%v", apicall.Count),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user