diff --git a/web/federate.go b/web/federate.go index 7319b34e8..f97579ad4 100644 --- a/web/federate.go +++ b/web/federate.go @@ -95,7 +95,7 @@ func (h *Handler) federation(w http.ResponseWriter, req *http.Request) { var sets []storage.SeriesSet for _, mset := range matcherSets { - s := q.Select(false, hints, mset...) + s := q.Select(true, hints, mset...) sets = append(sets, s) } diff --git a/web/federate_test.go b/web/federate_test.go index b7f42b908..35a02bb44 100644 --- a/web/federate_test.go +++ b/web/federate_test.go @@ -113,6 +113,14 @@ test_metric1{foo="bar",instance="i"} 10000 6000000 test_metric1{foo="boo",instance="i"} 1 6000000 # TYPE test_metric2 untyped test_metric2{foo="boo",instance="i"} 1 6000000 +`, + }, + "two matchers with overlap": { + params: "match[]={__name__=~'test_metric1'}&match[]={foo='bar'}", + code: 200, + body: `# TYPE test_metric1 untyped +test_metric1{foo="bar",instance="i"} 10000 6000000 +test_metric1{foo="boo",instance="i"} 1 6000000 `, }, "everything": {