...
1
16
17 package metrics
18
19 import (
20 "context"
21
22 "github.com/onsi/ginkgo/v2"
23
24 "k8s.io/kubernetes/test/e2e/framework"
25 )
26
27 func GrabBeforeEach(ctx context.Context, f *framework.Framework) (result *Collection) {
28 gatherMetricsAfterTest := framework.TestContext.GatherMetricsAfterTest == "true" || framework.TestContext.GatherMetricsAfterTest == "master"
29 if !gatherMetricsAfterTest || !framework.TestContext.IncludeClusterAutoscalerMetrics {
30 return nil
31 }
32
33 ginkgo.By("Gathering metrics before test", func() {
34 grabber, err := NewMetricsGrabber(ctx, f.ClientSet, f.KubemarkExternalClusterClientSet, f.ClientConfig(), !framework.ProviderIs("kubemark"), false, false, false, framework.TestContext.IncludeClusterAutoscalerMetrics, false)
35 if err != nil {
36 framework.Logf("Failed to create MetricsGrabber (skipping ClusterAutoscaler metrics gathering before test): %v", err)
37 return
38 }
39 metrics, err := grabber.Grab(ctx)
40 if err != nil {
41 framework.Logf("MetricsGrabber failed to grab CA metrics before test (skipping metrics gathering): %v", err)
42 return
43 }
44 framework.Logf("Gathered ClusterAutoscaler metrics before test")
45 result = &metrics
46 })
47
48 return
49 }
50
51 func GrabAfterEach(ctx context.Context, f *framework.Framework, before *Collection) {
52 if framework.TestContext.GatherMetricsAfterTest == "false" {
53 return
54 }
55
56 ginkgo.By("Gathering metrics after test", func() {
57
58 grabMetricsFromKubelets := framework.TestContext.GatherMetricsAfterTest != "master" && !framework.ProviderIs("kubemark")
59 grabber, err := NewMetricsGrabber(ctx, f.ClientSet, f.KubemarkExternalClusterClientSet, f.ClientConfig(), grabMetricsFromKubelets, true, true, true, framework.TestContext.IncludeClusterAutoscalerMetrics, false)
60 if err != nil {
61 framework.Logf("Failed to create MetricsGrabber (skipping metrics gathering): %v", err)
62 return
63 }
64 received, err := grabber.Grab(ctx)
65 if err != nil {
66 framework.Logf("MetricsGrabber failed to grab some of the metrics: %v", err)
67 return
68 }
69 if before == nil {
70 before = &Collection{}
71 }
72 (*ComponentCollection)(&received).ComputeClusterAutoscalerMetricsDelta(*before)
73 f.TestSummaries = append(f.TestSummaries, (*ComponentCollection)(&received))
74 })
75 }
76
View as plain text