diff --git a/test/e2e/framework/perf_util.go b/test/e2e/framework/perf_util.go index 6ce84164ae7..9e8405f4bc4 100644 --- a/test/e2e/framework/perf_util.go +++ b/test/e2e/framework/perf_util.go @@ -78,27 +78,20 @@ func PrintPerfData(p *perftype.PerfData) { // Notice that this function only cares about memory usage, because cpu usage information will be extracted from NodesCPUSummary. func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels map[string]string) *perftype.PerfData { items := []perftype.DataItem{} - for node, usages := range usagePerNode { + for _, usages := range usagePerNode { for c, usage := range usages { - newLabels := map[string]string{ - "node": node, - "container": c, - "resource": "memory", - } - if labels != nil { - for k, v := range labels { - newLabels[k] = v - } - } - item := perftype.DataItem{ Data: map[string]float64{ "memory": float64(usage.MemoryUsageInBytes) / (1024 * 1024), "workingset": float64(usage.MemoryWorkingSetInBytes) / (1024 * 1024), "rss": float64(usage.MemoryRSSInBytes) / (1024 * 1024), }, - Unit: "MB", - Labels: newLabels, + Unit: "MB", + Labels: map[string]string{ + "container": c, + "datatype": "resource", + "resource": "memory", + }, } items = append(items, item) } @@ -106,34 +99,28 @@ func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels return &perftype.PerfData{ Version: currentKubeletPerfMetricsVersion, DataItems: items, + Labels: labels, } } // CPUUsageToPerfDataWithLabels transforms NodesCPUSummary to PerfData with additional labels. func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[string]string) *perftype.PerfData { items := []perftype.DataItem{} - for node, usages := range usagePerNode { + for _, usages := range usagePerNode { for c, usage := range usages { - newLabels := map[string]string{ - "node": node, - "container": c, - "resource": "cpu", - } - if labels != nil { - for k, v := range labels { - newLabels[k] = v - } - } - data := map[string]float64{} for perc, value := range usage { data[fmt.Sprintf("Perc%02.0f", perc*100)] = value * 1000 } item := perftype.DataItem{ - Data: data, - Unit: "mCPU", - Labels: newLabels, + Data: data, + Unit: "mCPU", + Labels: map[string]string{ + "container": c, + "datatype": "resource", + "resource": "cpu", + }, } items = append(items, item) } @@ -141,5 +128,6 @@ func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[strin return &perftype.PerfData{ Version: currentKubeletPerfMetricsVersion, DataItems: items, + Labels: labels, } } diff --git a/test/e2e/perftype/perftype.go b/test/e2e/perftype/perftype.go index c39585de43d..48f819ec235 100644 --- a/test/e2e/perftype/perftype.go +++ b/test/e2e/perftype/perftype.go @@ -31,7 +31,7 @@ type DataItem struct { // should have the same unit. Unit string `json:"unit"` // Labels is the labels of the data item. - Labels map[string]string `json:"labels"` + Labels map[string]string `json:"labels,omitempty"` } // PerfData contains all data items generated in current test. @@ -40,6 +40,8 @@ type PerfData struct { // to detect metrics version change and decide what version to support. Version string `json:"version"` DataItems []DataItem `json:"dataItems"` + // Labels is the labels of the dataset. + Labels map[string]string `json:"labels,omitempty"` } // PerfResultTag is the prefix of generated perfdata. Analyzing tools can find the perf result diff --git a/test/e2e_node/benchmark_util.go b/test/e2e_node/benchmark_util.go index 7a30cd982ec..eb404ec0ecc 100644 --- a/test/e2e_node/benchmark_util.go +++ b/test/e2e_node/benchmark_util.go @@ -45,9 +45,8 @@ type NodeTimeSeries struct { func logDensityTimeSeries(rc *ResourceCollector, create, watch map[string]unversioned.Time, testName string) { timeSeries := &NodeTimeSeries{ Labels: map[string]string{ - "node": framework.TestContext.NodeName, - "datatype": "timeseries", - "test": testName, + "node": framework.TestContext.NodeName, + "test": testName, }, Version: currentTimeSeriesVersion, } @@ -94,10 +93,12 @@ func getLatencyPerfData(latency framework.LatencyMetric, testName string) *perft Labels: map[string]string{ "datatype": "latency", "latencytype": "test-e2e", - "node": framework.TestContext.NodeName, - "test": testName, }, }, }, + Labels: map[string]string{ + "node": framework.TestContext.NodeName, + "test": testName, + }, } } diff --git a/test/e2e_node/density_test.go b/test/e2e_node/density_test.go index 68c2db38646..5135d5ab782 100644 --- a/test/e2e_node/density_test.go +++ b/test/e2e_node/density_test.go @@ -241,7 +241,7 @@ type densityTest struct { } func (dt *densityTest) getTestName() string { - return fmt.Sprintf("create_%s_%d_%d_%d", dt.createMethod, dt.podsNr, dt.bgPodsNr, dt.interval.Nanoseconds()/1000000) + return fmt.Sprintf("density_create_%s_%d_%d_%d", dt.createMethod, dt.podsNr, dt.bgPodsNr, dt.interval.Nanoseconds()/1000000) } // runDensityBatchTest runs the density batch pod creation test diff --git a/test/e2e_node/resource_usage_test.go b/test/e2e_node/resource_usage_test.go index 80265ac5cb9..3ac85ca943a 100644 --- a/test/e2e_node/resource_usage_test.go +++ b/test/e2e_node/resource_usage_test.go @@ -194,15 +194,9 @@ func logAndVerifyResource(f *framework.Framework, rc *ResourceCollector, cpuLimi // Print resource usage framework.PrintPerfData(framework.ResourceUsageToPerfDataWithLabels(usagePerNode, - map[string]string{ - "datatype": "resource", - "test": testName, - })) + map[string]string{"test": testName, "node": nodeName})) framework.PrintPerfData(framework.CPUUsageToPerfDataWithLabels(cpuSummaryPerNode, - map[string]string{ - "datatype": "resource", - "test": testName, - })) + map[string]string{"test": testName, "node": nodeName})) // Verify resource usage if isVerify {