From c8e0c94a8a2cbb3505f63d14fda1885a4d1f4cd4 Mon Sep 17 00:00:00 2001 From: Kenichi Omichi Date: Fri, 23 Aug 2019 17:24:13 +0000 Subject: [PATCH] Move PrintPerfData to the test PrintPerfData is called at e2e node tests and it depends on e2elog and e2emetrics. This moves the function to the place which calls the function for removing unnecessary dependencies from e2e node subpackage. --- test/e2e/framework/perf/BUILD | 2 -- test/e2e/framework/perf/perf.go | 11 ----------- test/e2e/node/BUILD | 2 ++ test/e2e/node/kubelet_perf.go | 15 +++++++++++++-- test/e2e_node/benchmark_util.go | 11 ++++++++++- 5 files changed, 25 insertions(+), 16 deletions(-) diff --git a/test/e2e/framework/perf/BUILD b/test/e2e/framework/perf/BUILD index d0da37f9586..8e1e28e3b8f 100644 --- a/test/e2e/framework/perf/BUILD +++ b/test/e2e/framework/perf/BUILD @@ -7,8 +7,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//test/e2e/framework/kubelet:go_default_library", - "//test/e2e/framework/log:go_default_library", - "//test/e2e/framework/metrics:go_default_library", "//test/e2e/perftype:go_default_library", ], ) diff --git a/test/e2e/framework/perf/perf.go b/test/e2e/framework/perf/perf.go index 4a10ea9d471..d49c52f84ea 100644 --- a/test/e2e/framework/perf/perf.go +++ b/test/e2e/framework/perf/perf.go @@ -20,8 +20,6 @@ import ( "fmt" e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet" - e2elog "k8s.io/kubernetes/test/e2e/framework/log" - e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/perftype" ) @@ -41,15 +39,6 @@ func CPUUsageToPerfData(usagePerNode e2ekubelet.NodesCPUSummary) *perftype.PerfD return CPUUsageToPerfDataWithLabels(usagePerNode, nil) } -// PrintPerfData prints the perfdata in json format with PerfResultTag prefix. -// If an error occurs, nothing will be printed. -func PrintPerfData(p *perftype.PerfData) { - // Notice that we must make sure the perftype.PerfResultEnd is in a new line. - if str := e2emetrics.PrettyPrintJSON(p); str != "" { - e2elog.Logf("%s %s\n%s", perftype.PerfResultTag, str, perftype.PerfResultEnd) - } -} - // ResourceUsageToPerfDataWithLabels transforms ResourceUsagePerNode to PerfData with additional labels. // Notice that this function only cares about memory usage, because cpu usage information will be extracted from NodesCPUSummary. func ResourceUsageToPerfDataWithLabels(usagePerNode e2ekubelet.ResourceUsagePerNode, labels map[string]string) *perftype.PerfData { diff --git a/test/e2e/node/BUILD b/test/e2e/node/BUILD index 4d2d7c231ca..52b30c5deeb 100644 --- a/test/e2e/node/BUILD +++ b/test/e2e/node/BUILD @@ -39,11 +39,13 @@ go_library( "//test/e2e/framework/job:go_default_library", "//test/e2e/framework/kubelet:go_default_library", "//test/e2e/framework/log:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/e2e/framework/node:go_default_library", "//test/e2e/framework/perf:go_default_library", "//test/e2e/framework/pod:go_default_library", "//test/e2e/framework/ssh:go_default_library", "//test/e2e/framework/volume:go_default_library", + "//test/e2e/perftype:go_default_library", "//test/utils:go_default_library", "//test/utils/image:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", diff --git a/test/e2e/node/kubelet_perf.go b/test/e2e/node/kubelet_perf.go index 245c2b1c997..7a9ddab9db9 100644 --- a/test/e2e/node/kubelet_perf.go +++ b/test/e2e/node/kubelet_perf.go @@ -28,7 +28,9 @@ import ( "k8s.io/kubernetes/test/e2e/framework" e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet" e2elog "k8s.io/kubernetes/test/e2e/framework/log" + e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics" e2eperf "k8s.io/kubernetes/test/e2e/framework/perf" + "k8s.io/kubernetes/test/e2e/perftype" testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" @@ -109,13 +111,13 @@ func runResourceTrackingTest(f *framework.Framework, podsPerNode int, nodeNames // TODO(random-liu): Remove the original log when we migrate to new perfdash e2elog.Logf("%s", rm.FormatResourceUsage(usageSummary)) // Log perf result - e2eperf.PrintPerfData(e2eperf.ResourceUsageToPerfData(rm.GetMasterNodeLatest(usageSummary))) + printPerfData(e2eperf.ResourceUsageToPerfData(rm.GetMasterNodeLatest(usageSummary))) verifyMemoryLimits(f.ClientSet, expectedMemory, usageSummary) cpuSummary := rm.GetCPUSummary() e2elog.Logf("%s", rm.FormatCPUSummary(cpuSummary)) // Log perf result - e2eperf.PrintPerfData(e2eperf.CPUUsageToPerfData(rm.GetMasterNodeCPUSummary(cpuSummary))) + printPerfData(e2eperf.CPUUsageToPerfData(rm.GetMasterNodeCPUSummary(cpuSummary))) verifyCPULimits(expectedCPU, cpuSummary) ginkgo.By("Deleting the RC") @@ -279,3 +281,12 @@ var _ = SIGDescribe("Kubelet [Serial] [Slow]", func() { } }) }) + +// printPerfData prints the perfdata in json format with PerfResultTag prefix. +// If an error occurs, nothing will be printed. +func printPerfData(p *perftype.PerfData) { + // Notice that we must make sure the perftype.PerfResultEnd is in a new line. + if str := e2emetrics.PrettyPrintJSON(p); str != "" { + e2elog.Logf("%s %s\n%s", perftype.PerfResultTag, str, perftype.PerfResultEnd) + } +} diff --git a/test/e2e_node/benchmark_util.go b/test/e2e_node/benchmark_util.go index f7ea2cf6314..88f6127ba6b 100644 --- a/test/e2e_node/benchmark_util.go +++ b/test/e2e_node/benchmark_util.go @@ -59,7 +59,7 @@ func dumpDataToFile(data interface{}, labels map[string]string, prefix string) { // as "cpu" and "memory". If an error occurs, no perf data will be logged. func logPerfData(p *perftype.PerfData, perfType string) { if framework.TestContext.ReportDir == "" { - e2eperf.PrintPerfData(p) + printPerfData(p) return } dumpDataToFile(p, p.Labels, "performance-"+perfType) @@ -190,3 +190,12 @@ func getTestNodeInfo(f *framework.Framework, testName, testDesc string) map[stri "desc": testDesc, } } + +// printPerfData prints the perfdata in json format with PerfResultTag prefix. +// If an error occurs, nothing will be printed. +func printPerfData(p *perftype.PerfData) { + // Notice that we must make sure the perftype.PerfResultEnd is in a new line. + if str := e2emetrics.PrettyPrintJSON(p); str != "" { + e2elog.Logf("%s %s\n%s", perftype.PerfResultTag, str, perftype.PerfResultEnd) + } +}