func GetHistogramVecFromGatherer()

in metrics/testutil/metrics.go [255:285]


func GetHistogramVecFromGatherer(gatherer metrics.Gatherer, metricName string, lvMap map[string]string) (HistogramVec, error) {
	var metricFamily *dto.MetricFamily
	m, err := gatherer.Gather()
	if err != nil {
		return nil, err
	}
	for _, mFamily := range m {
		if mFamily.GetName() == metricName {
			metricFamily = mFamily
			break
		}
	}

	if metricFamily == nil {
		return nil, fmt.Errorf("metric %q not found", metricName)
	}

	if len(metricFamily.GetMetric()) == 0 {
		return nil, fmt.Errorf("metric %q is empty", metricName)
	}

	vec := make(HistogramVec, 0)
	for _, metric := range metricFamily.GetMetric() {
		if LabelsMatch(metric, lvMap) {
			if hist := metric.GetHistogram(); hist != nil {
				vec = append(vec, &Histogram{hist})
			}
		}
	}
	return vec, nil
}