From 30a92a8f0a7deb9b54795661d8d6d84234a1089e Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 11 Sep 2017 21:50:06 -0400 Subject: [PATCH] Report scope in e2e test metrics --- test/e2e/framework/metrics_util.go | 18 ++++++++++-------- test/e2e/framework/perf_util.go | 1 + 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/test/e2e/framework/metrics_util.go b/test/e2e/framework/metrics_util.go index 2d751df6bc8..bf93827969f 100644 --- a/test/e2e/framework/metrics_util.go +++ b/test/e2e/framework/metrics_util.go @@ -230,6 +230,7 @@ type APICall struct { Resource string `json:"resource"` Subresource string `json:"subresource"` Verb string `json:"verb"` + Scope string `json:"scope"` Latency LatencyMetric `json:"latency"` 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). // 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. -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 { - 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) 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) } @@ -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). -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 { - 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 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) } @@ -332,6 +333,7 @@ func readLatencyMetrics(c clientset.Interface) (*APIResponsiveness, error) { resource := string(sample.Metric["resource"]) subresource := string(sample.Metric["subresource"]) verb := string(sample.Metric["verb"]) + scope := string(sample.Metric["scope"]) if ignoredResources.Has(resource) || ignoredVerbs.Has(verb) { continue } @@ -343,10 +345,10 @@ func readLatencyMetrics(c clientset.Interface) (*APIResponsiveness, error) { if err != nil { 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": count := sample.Value - a.addMetricRequestCount(resource, subresource, verb, int(count)) + a.addMetricRequestCount(resource, subresource, verb, scope, int(count)) } } diff --git a/test/e2e/framework/perf_util.go b/test/e2e/framework/perf_util.go index 538a67e7b33..67d9ada5702 100644 --- a/test/e2e/framework/perf_util.go +++ b/test/e2e/framework/perf_util.go @@ -44,6 +44,7 @@ func ApiCallToPerfData(apicalls *APIResponsiveness) *perftype.PerfData { "Verb": apicall.Verb, "Resource": apicall.Resource, "Subresource": apicall.Subresource, + "Scope": apicall.Scope, "Count": fmt.Sprintf("%v", apicall.Count), }, }