diff --git a/staging/src/k8s.io/component-base/metrics/testutil/metrics.go b/staging/src/k8s.io/component-base/metrics/testutil/metrics.go index e016b826b21..df3f8ee0c1d 100644 --- a/staging/src/k8s.io/component-base/metrics/testutil/metrics.go +++ b/staging/src/k8s.io/component-base/metrics/testutil/metrics.go @@ -249,10 +249,10 @@ func (vec HistogramVec) Validate() error { return nil } -// GetMetricFamilyFromGatherer collects a metric family, that matches the input metricName, +// GetHistogramVecFromGatherer collects a metric, that matches the input labelValue map, // from a gatherer implementing k8s.io/component-base/metrics.Gatherer interface. // Used only for testing purposes where we need to gather metrics directly from a running binary (without metrics endpoint). -func GetMetricFamilyFromGatherer(gatherer metrics.Gatherer, metricName string) (*dto.MetricFamily, error) { +func GetHistogramVecFromGatherer(gatherer metrics.Gatherer, metricName string, lvMap map[string]string) (HistogramVec, error) { var metricFamily *dto.MetricFamily m, err := gatherer.Gather() if err != nil { @@ -273,11 +273,6 @@ func GetMetricFamilyFromGatherer(gatherer metrics.Gatherer, metricName string) ( return nil, fmt.Errorf("metric %q is empty", metricName) } - return metricFamily, nil -} - -// GetHistogramVec collects a vector of Histogram from a metric family, that matches the input labelValue map. -func GetHistogramVec(metricFamily *dto.MetricFamily, lvMap map[string]string) HistogramVec { vec := make(HistogramVec, 0) for _, metric := range metricFamily.GetMetric() { if LabelsMatch(metric, lvMap) { @@ -286,7 +281,7 @@ func GetHistogramVec(metricFamily *dto.MetricFamily, lvMap map[string]string) Hi } } } - return vec + return vec, nil } func uint64Ptr(u uint64) *uint64 { diff --git a/staging/src/k8s.io/component-base/metrics/testutil/metrics_test.go b/staging/src/k8s.io/component-base/metrics/testutil/metrics_test.go index dd792854eaf..3ee3a28736e 100644 --- a/staging/src/k8s.io/component-base/metrics/testutil/metrics_test.go +++ b/staging/src/k8s.io/component-base/metrics/testutil/metrics_test.go @@ -585,8 +585,7 @@ func TestGetHistogramVecFromGatherer(t *testing.T) { vec.WithLabelValues("value1-1", "value2-0").Observe(3.5) vec.WithLabelValues("value1-1", "value2-1").Observe(4.5) metricName := fmt.Sprintf("%s_%s_%s", HistogramOpts.Namespace, HistogramOpts.Subsystem, HistogramOpts.Name) - metricFamily, _ := GetMetricFamilyFromGatherer(legacyregistry.DefaultGatherer, metricName) - histogramVec := GetHistogramVec(metricFamily, tt.lvMap) + histogramVec, _ := GetHistogramVecFromGatherer(legacyregistry.DefaultGatherer, metricName, tt.lvMap) if diff := cmp.Diff(tt.wantVec, histogramVec); diff != "" { t.Errorf("Got unexpected HistogramVec (-want +got):\n%s", diff) } diff --git a/test/integration/scheduler_perf/util.go b/test/integration/scheduler_perf/util.go index 91eb385b90f..a48607d4fac 100644 --- a/test/integration/scheduler_perf/util.go +++ b/test/integration/scheduler_perf/util.go @@ -208,16 +208,10 @@ func (*metricsCollector) run(ctx context.Context) { func (pc *metricsCollector) collect() []DataItem { var dataItems []DataItem - for name, labelVals := range pc.Metrics { - metricFamily, err := testutil.GetMetricFamilyFromGatherer(legacyregistry.DefaultGatherer, name) - if err != nil { - klog.Error(err) - return dataItems - } + for metric, labelVals := range pc.Metrics { // no filter is specified, aggregate all the metrics within the same metricFamily. if labelVals == nil { - vec := testutil.GetHistogramVec(metricFamily, nil) - dataItem := collectHistogramData(vec, pc.labels, nil, name) + dataItem := collectHistogramVec(metric, pc.labels, nil) if dataItem != nil { dataItems = append(dataItems, *dataItem) } @@ -225,8 +219,7 @@ func (pc *metricsCollector) collect() []DataItem { // fetch the metric from metricFamily which match each of the lvMap. for _, value := range labelVals.values { lvMap := map[string]string{labelVals.label: value} - vec := testutil.GetHistogramVec(metricFamily, lvMap) - dataItem := collectHistogramData(vec, pc.labels, lvMap, name) + dataItem := collectHistogramVec(metric, pc.labels, lvMap) if dataItem != nil { dataItems = append(dataItems, *dataItem) } @@ -236,10 +229,13 @@ func (pc *metricsCollector) collect() []DataItem { return dataItems } -func collectHistogramData(vec testutil.HistogramVec, labels, lvMap map[string]string, metric string) *DataItem { - if len(vec) == 0 { +func collectHistogramVec(metric string, labels map[string]string, lvMap map[string]string) *DataItem { + vec, err := testutil.GetHistogramVecFromGatherer(legacyregistry.DefaultGatherer, metric, lvMap) + if err != nil { + klog.Error(err) return nil } + if err := vec.Validate(); err != nil { klog.Error(err) return nil