Skip to content

Commit eb33971

Browse files
Filter expected metrics as well in CollectAndCompare (#1143)
* Filter expected metrics as well in CollectAndCompare Signed-off-by: Daria Danilenko <daria.danilenko@fluxninja.com> * Add testcase for multiple expected metrics Signed-off-by: Daria Danilenko <daria.danilenko@fluxninja.com> * Change test values for filtering multiple expected metrics Signed-off-by: Daria Danilenko <daria.danilenko@fluxninja.com> --------- Signed-off-by: Daria Danilenko <daria.danilenko@fluxninja.com>
1 parent 5c7821d commit eb33971

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

prometheus/testutil/testutil.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ func convertReaderToMetricFamily(reader io.Reader) ([]*dto.MetricFamily, error)
238238
func compareMetricFamilies(got, expected []*dto.MetricFamily, metricNames ...string) error {
239239
if metricNames != nil {
240240
got = filterMetrics(got, metricNames)
241+
expected = filterMetrics(expected, metricNames)
241242
}
242243

243244
return compare(got, expected)

prometheus/testutil/testutil_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,31 @@ func TestScrapeAndCompare(t *testing.T) {
331331
}
332332
}
333333

334+
func TestScrapeAndCompareWithMultipleExpected(t *testing.T) {
335+
const expected = `
336+
# HELP some_total A value that represents a counter.
337+
# TYPE some_total counter
338+
339+
some_total{ label1 = "value1" } 1
340+
341+
# HELP some_total2 A value that represents a counter.
342+
# TYPE some_total2 counter
343+
344+
some_total2{ label2 = "value2" } 1
345+
`
346+
347+
expectedReader := strings.NewReader(expected)
348+
349+
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
350+
fmt.Fprintln(w, expected)
351+
}))
352+
defer ts.Close()
353+
354+
if err := ScrapeAndCompare(ts.URL, expectedReader, "some_total2"); err != nil {
355+
t.Errorf("unexpected scraping result:\n%s", err)
356+
}
357+
}
358+
334359
func TestScrapeAndCompareFetchingFail(t *testing.T) {
335360
err := ScrapeAndCompare("some_url", strings.NewReader("some expectation"), "some_total")
336361
if err == nil {

0 commit comments

Comments
 (0)