storage/remote/read.go
func (q requiredMatchersQuerier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
	ms := q.requiredMatchers
	for _, m := range matchers {
		for i, r := range ms {
			if m.Type == labels.MatchEqual && m.Name == r.Name && m.Value == r.Value {
				ms = append(ms[:i], ms[i+1:]...)
				break
			}
		}
		if len(ms) == 0 {
			break
		}
	}
	if len(ms) > 0 {
		return storage.NoopSeriesSet(), nil, nil
	}
	return q.Querier.Select(p, matchers...)
}
func (q requiredMatchersQuerier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
	ms := q.requiredMatchers
	for _, m := range matchers {
		for i, r := range ms {
			if m.Type == labels.MatchEqual && m.Name == r.Name && m.Value == r.Value {
				ms = append(ms[:i], ms[i+1:]...)
				break
			}
		}
		if len(ms) == 0 {
			break
		}
	}
	if len(ms) > 0 {
		return storage.NoopSeriesSet(), nil, nil
	}
	return q.Querier.Select(p, matchers...)
}
func ( q requiredMatchersQuerier ) Select ( p * storage . SelectParams , matchers ... * labels . Matcher ) ( storage . SeriesSet , storage . Warnings , error ) { ms := q . requiredMatchers for _ , m := range matchers { for i , r := range ms { if m . Type == labels . MatchEqual && m . Name == r . Name && m . Value == r . Value { ms = append ( ms [ : i ] , ms [ i + 1 : ] ... ) break } } if len ( ms ) == 0 { break } } if len ( ms ) > 0 { return storage . NoopSeriesSet ( ) , nil , nil } return q . Querier . Select ( p , matchers ... ) }
// Select returns a NoopSeriesSet if the given matchers don't match the label
// set of the requiredMatchersQuerier. Otherwise it'll call the wrapped querier.
Select returns a NoopSeriesSet if the given matchers don t match the label set of the requiredMatchersQuerier . Otherwise it ll call the wrapped querier .