Skip to content

Commit 2f39e73

Browse files
authored
Merge pull request kubernetes#86119 from haosdent/clean-e2e-framework-metrics
e2e: move funs of framework/metrics to e2e_node
2 parents 661a08d + 8d3a8d5 commit 2f39e73

File tree

5 files changed

+23
-67
lines changed

5 files changed

+23
-67
lines changed

test/e2e/framework/metrics/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ go_library(
1919
"metrics_grabber.go",
2020
"pod.go",
2121
"scheduler_metrics.go",
22-
"scheduling.go",
2322
],
2423
importpath = "k8s.io/kubernetes/test/e2e/framework/metrics",
2524
deps = [

test/e2e/framework/metrics/latencies.go

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ limitations under the License.
1717
package metrics
1818

1919
import (
20-
"math"
2120
"time"
22-
23-
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
2421
)
2522

2623
const (
@@ -46,20 +43,3 @@ type LatencySlice []PodLatencyData
4643
func (a LatencySlice) Len() int { return len(a) }
4744
func (a LatencySlice) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
4845
func (a LatencySlice) Less(i, j int) bool { return a[i].Latency < a[j].Latency }
49-
50-
// ExtractLatencyMetrics returns latency metrics for each percentile(50th, 90th and 99th).
51-
func ExtractLatencyMetrics(latencies []PodLatencyData) LatencyMetric {
52-
length := len(latencies)
53-
perc50 := latencies[int(math.Ceil(float64(length*50)/100))-1].Latency
54-
perc90 := latencies[int(math.Ceil(float64(length*90)/100))-1].Latency
55-
perc99 := latencies[int(math.Ceil(float64(length*99)/100))-1].Latency
56-
perc100 := latencies[length-1].Latency
57-
return LatencyMetric{Perc50: perc50, Perc90: perc90, Perc99: perc99, Perc100: perc100}
58-
}
59-
60-
// PrintLatencies outputs latencies to log with readable format.
61-
func PrintLatencies(latencies []PodLatencyData, header string) {
62-
metrics := ExtractLatencyMetrics(latencies)
63-
e2elog.Logf("10%% %s: %v", header, latencies[(len(latencies)*9)/10:])
64-
e2elog.Logf("perc50: %v, perc90: %v, perc99: %v", metrics.Perc50, metrics.Perc90, metrics.Perc99)
65-
}

test/e2e/framework/metrics/scheduling.go

Lines changed: 0 additions & 44 deletions
This file was deleted.

test/e2e_node/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ go_test(
220220
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
221221
"//test/e2e/framework/config:go_default_library",
222222
"//test/e2e/framework/kubelet:go_default_library",
223+
"//test/e2e/framework/log:go_default_library",
223224
"//test/e2e/framework/perf:go_default_library",
224225
"//test/e2e/generated:go_default_library",
225226
"//vendor/github.com/onsi/ginkgo/config:go_default_library",
@@ -235,6 +236,7 @@ go_test(
235236
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
236237
"//test/e2e/framework/config:go_default_library",
237238
"//test/e2e/framework/kubelet:go_default_library",
239+
"//test/e2e/framework/log:go_default_library",
238240
"//test/e2e/framework/perf:go_default_library",
239241
"//test/e2e/generated:go_default_library",
240242
"//vendor/github.com/onsi/ginkgo/config:go_default_library",

test/e2e_node/density_test.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package e2enode
2020

2121
import (
2222
"fmt"
23+
"math"
2324
"sort"
2425
"strconv"
2526
"sync"
@@ -36,6 +37,7 @@ import (
3637
kubemetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
3738
"k8s.io/kubernetes/test/e2e/framework"
3839
e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
40+
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
3941
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
4042
imageutils "k8s.io/kubernetes/test/utils/image"
4143

@@ -548,16 +550,33 @@ func verifyLatencyWithinThreshold(threshold, actual e2emetrics.LatencyMetric, me
548550
return nil
549551
}
550552

553+
// extractLatencyMetrics returns latency metrics for each percentile(50th, 90th and 99th).
554+
func extractLatencyMetrics(latencies []e2emetrics.PodLatencyData) e2emetrics.LatencyMetric {
555+
length := len(latencies)
556+
perc50 := latencies[int(math.Ceil(float64(length*50)/100))-1].Latency
557+
perc90 := latencies[int(math.Ceil(float64(length*90)/100))-1].Latency
558+
perc99 := latencies[int(math.Ceil(float64(length*99)/100))-1].Latency
559+
perc100 := latencies[length-1].Latency
560+
return e2emetrics.LatencyMetric{Perc50: perc50, Perc90: perc90, Perc99: perc99, Perc100: perc100}
561+
}
562+
563+
// printLatencies outputs latencies to log with readable format.
564+
func printLatencies(latencies []e2emetrics.PodLatencyData, header string) {
565+
metrics := extractLatencyMetrics(latencies)
566+
e2elog.Logf("10%% %s: %v", header, latencies[(len(latencies)*9)/10:])
567+
e2elog.Logf("perc50: %v, perc90: %v, perc99: %v", metrics.Perc50, metrics.Perc90, metrics.Perc99)
568+
}
569+
551570
// logAndVerifyLatency verifies that whether pod creation latency satisfies the limit.
552571
func logAndVerifyLatency(batchLag time.Duration, e2eLags []e2emetrics.PodLatencyData, podStartupLimits e2emetrics.LatencyMetric,
553572
podBatchStartupLimit time.Duration, testInfo map[string]string, isVerify bool) {
554-
e2emetrics.PrintLatencies(e2eLags, "worst client e2e total latencies")
573+
printLatencies(e2eLags, "worst client e2e total latencies")
555574

556575
// TODO(coufon): do not trust 'kubelet' metrics since they are not reset!
557576
latencyMetrics, _ := getPodStartLatency(kubeletAddr)
558577
framework.Logf("Kubelet Prometheus metrics (not reset):\n%s", framework.PrettyPrintJSON(latencyMetrics))
559578

560-
podStartupLatency := e2emetrics.ExtractLatencyMetrics(e2eLags)
579+
podStartupLatency := extractLatencyMetrics(e2eLags)
561580

562581
// log latency perf data
563582
logPerfData(getLatencyPerfData(podStartupLatency, testInfo), "latency")

0 commit comments

Comments
 (0)