Skip to content

Commit c5d7574

Browse files
authored
Merge pull request kubernetes#85029 from serathius/remove-prometheus-test-e2e
Remove references to prometheus is test/e2e
2 parents 09b13ae + 30989b6 commit c5d7574

File tree

4 files changed

+41
-48
lines changed

4 files changed

+41
-48
lines changed

staging/src/k8s.io/component-base/metrics/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,6 @@ package_group(
9494
"//staging/src/k8s.io/apiserver/pkg/admission/metrics",
9595
"//staging/src/k8s.io/apiserver/pkg/util/flowcontrol/metrics",
9696
"//staging/src/k8s.io/component-base/metrics/...",
97-
"//test/e2e",
98-
"//test/e2e/storage",
9997
"//test/e2e_node",
10098
"//vendor/...",
10199
],

staging/src/k8s.io/component-base/metrics/testutil/metrics.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,34 @@ func ComputeHistogramDelta(before, after model.Samples, label model.LabelName) {
147147
func makeKey(a, b model.LabelValue) string {
148148
return string(a) + "___" + string(b)
149149
}
150+
151+
// GetMetricValuesForLabel returns value of metric for a given dimension
152+
func GetMetricValuesForLabel(ms Metrics, metricName, label string) map[string]int64 {
153+
samples, found := ms[metricName]
154+
result := make(map[string]int64, len(samples))
155+
if !found {
156+
return result
157+
}
158+
for _, sample := range samples {
159+
count := int64(sample.Value)
160+
dimensionName := string(sample.Metric[model.LabelName(label)])
161+
result[dimensionName] = count
162+
}
163+
return result
164+
}
165+
166+
// ValidateMetrics verifies if every sample of metric has all expected labels
167+
func ValidateMetrics(metrics Metrics, metricName string, expectedLabels ...string) error {
168+
samples, ok := metrics[metricName]
169+
if !ok {
170+
return fmt.Errorf("metric %q was not found in metrics", metricName)
171+
}
172+
for _, sample := range samples {
173+
for _, l := range expectedLabels {
174+
if _, ok := sample.Metric[model.LabelName(l)]; !ok {
175+
return fmt.Errorf("metric %q is missing label %q, sample: %q", metricName, l, sample.String())
176+
}
177+
}
178+
}
179+
return nil
180+
}

test/e2e/storage/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ go_library(
8787
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
8888
"//vendor/github.com/onsi/ginkgo:go_default_library",
8989
"//vendor/github.com/onsi/gomega:go_default_library",
90-
"//vendor/github.com/prometheus/common/model:go_default_library",
9190
"//vendor/google.golang.org/api/googleapi:go_default_library",
9291
],
9392
)

test/e2e/storage/volume_metrics.go

Lines changed: 10 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323

2424
"github.com/onsi/ginkgo"
2525
"github.com/onsi/gomega"
26-
"github.com/prometheus/common/model"
2726

2827
v1 "k8s.io/api/core/v1"
2928
storagev1 "k8s.io/api/storage/v1"
@@ -283,8 +282,8 @@ var _ = utils.SIGDescribe("[Serial] Volume metrics", func() {
283282

284283
metricKey := "volume_operation_total_seconds_count"
285284
dimensions := []string{"operation_name", "plugin_name"}
286-
valid := hasValidMetrics(testutil.Metrics(controllerMetrics), metricKey, dimensions...)
287-
framework.ExpectEqual(valid, true, "Invalid metric in P/V Controller metrics: %q", metricKey)
285+
err = testutil.ValidateMetrics(testutil.Metrics(controllerMetrics), metricKey, dimensions...)
286+
framework.ExpectNoError(err, "Invalid metric in P/V Controller metrics: %q", metricKey)
288287

289288
framework.Logf("Deleting pod %q/%q", pod.Namespace, pod.Name)
290289
framework.ExpectNoError(e2epod.DeletePodWithWait(c, pod))
@@ -313,8 +312,8 @@ var _ = utils.SIGDescribe("[Serial] Volume metrics", func() {
313312
// Metrics should have dimensions plugin_name and state available
314313
totalVolumesKey := "volume_manager_total_volumes"
315314
dimensions := []string{"state", "plugin_name"}
316-
valid := hasValidMetrics(testutil.Metrics(kubeMetrics), totalVolumesKey, dimensions...)
317-
framework.ExpectEqual(valid, true, "Invalid metric in Volume Manager metrics: %q", totalVolumesKey)
315+
err = testutil.ValidateMetrics(testutil.Metrics(kubeMetrics), totalVolumesKey, dimensions...)
316+
framework.ExpectNoError(err, "Invalid metric in Volume Manager metrics: %q", totalVolumesKey)
318317

319318
framework.Logf("Deleting pod %q/%q", pod.Namespace, pod.Name)
320319
framework.ExpectNoError(e2epod.DeletePodWithWait(c, pod))
@@ -441,7 +440,7 @@ var _ = utils.SIGDescribe("[Serial] Volume metrics", func() {
441440
// Concretely, we expect the difference of the updated values and original values for each
442441
// test suit are equal to expectValues.
443442
actualValues := calculateRelativeValues(originMetricValues[i],
444-
getPVControllerMetrics(controllerMetrics, metric.name, metric.dimension))
443+
testutil.GetMetricValuesForLabel(testutil.Metrics(controllerMetrics), metric.name, metric.dimension))
445444
framework.ExpectEqual(actualValues, expectValues, "Wrong pv controller metric %s(%s): wanted %v, got %v",
446445
metric.name, metric.dimension, expectValues, actualValues)
447446
}
@@ -460,7 +459,7 @@ var _ = utils.SIGDescribe("[Serial] Volume metrics", func() {
460459
framework.ExpectNoError(err, "Error getting c-m metricValues: %v", err)
461460
for _, metric := range metrics {
462461
originMetricValues = append(originMetricValues,
463-
getPVControllerMetrics(controllerMetrics, metric.name, metric.dimension))
462+
testutil.GetMetricValuesForLabel(testutil.Metrics(controllerMetrics), metric.name, metric.dimension))
464463
}
465464
})
466465

@@ -696,27 +695,12 @@ func waitForPVControllerSync(metricsGrabber *metrics.Grabber, metricName, dimens
696695
framework.Logf("Error fetching controller-manager metrics")
697696
return false, err
698697
}
699-
return len(getPVControllerMetrics(updatedMetrics, metricName, dimension)) > 0, nil
698+
return len(testutil.GetMetricValuesForLabel(testutil.Metrics(updatedMetrics), metricName, dimension)) > 0, nil
700699
}
701700
waitErr := wait.ExponentialBackoff(backoff, verifyMetricFunc)
702701
framework.ExpectNoError(waitErr, "Unable to get pv controller metrics")
703702
}
704703

705-
func getPVControllerMetrics(ms metrics.ControllerManagerMetrics, metricName, dimension string) map[string]int64 {
706-
result := make(map[string]int64)
707-
for method, samples := range ms {
708-
if method != metricName {
709-
continue
710-
}
711-
for _, sample := range samples {
712-
count := int64(sample.Value)
713-
dimensionName := string(sample.Metric[model.LabelName(dimension)])
714-
result[dimensionName] = count
715-
}
716-
}
717-
return result
718-
}
719-
720704
func calculateRelativeValues(originValues, updatedValues map[string]int64) map[string]int64 {
721705
relativeValues := make(map[string]int64)
722706
for key, value := range updatedValues {
@@ -733,26 +717,6 @@ func calculateRelativeValues(originValues, updatedValues map[string]int64) map[s
733717
return relativeValues
734718
}
735719

736-
func hasValidMetrics(metrics testutil.Metrics, metricKey string, dimensions ...string) bool {
737-
var errCount int
738-
framework.Logf("Looking for sample in metric %q", metricKey)
739-
samples, ok := metrics[metricKey]
740-
if !ok {
741-
framework.Logf("Key %q was not found in metrics", metricKey)
742-
return false
743-
}
744-
for _, sample := range samples {
745-
framework.Logf("Found sample %q", sample.String())
746-
for _, d := range dimensions {
747-
if _, ok := sample.Metric[model.LabelName(d)]; !ok {
748-
framework.Logf("Error getting dimension %q for metric %q, sample %q", d, metricKey, sample.String())
749-
errCount++
750-
}
751-
}
752-
}
753-
return errCount == 0
754-
}
755-
756720
func getStatesMetrics(metricKey string, givenMetrics testutil.Metrics) map[string]map[string]int64 {
757721
states := make(map[string]map[string]int64)
758722
for _, sample := range givenMetrics[metricKey] {
@@ -776,8 +740,9 @@ func waitForADControllerStatesMetrics(metricsGrabber *metrics.Grabber, metricNam
776740
e2eskipper.Skipf("Could not get controller-manager metrics - skipping")
777741
return false, err
778742
}
779-
if !hasValidMetrics(testutil.Metrics(updatedMetrics), metricName, dimensions...) {
780-
return false, fmt.Errorf("could not get valid metrics for %q", metricName)
743+
err = testutil.ValidateMetrics(testutil.Metrics(updatedMetrics), metricName, dimensions...)
744+
if err != nil {
745+
return false, fmt.Errorf("could not get valid metrics: %v ", err)
781746
}
782747
states := getStatesMetrics(metricName, testutil.Metrics(updatedMetrics))
783748
for _, name := range stateNames {

0 commit comments

Comments
 (0)