fixes ingester querier not honoring filters (#594)

pull/596/head
Cyril Tovena 7 years ago committed by Goutham Veeramachaneni
parent 2ad98007ff
commit ec7d453fef
  1. 20
      pkg/ingester/instance.go

@ -12,6 +12,7 @@ import (
"github.com/cortexproject/cortex/pkg/ingester/client" "github.com/cortexproject/cortex/pkg/ingester/client"
"github.com/cortexproject/cortex/pkg/ingester/index" "github.com/cortexproject/cortex/pkg/ingester/index"
cutil "github.com/cortexproject/cortex/pkg/util"
"github.com/grafana/loki/pkg/helpers" "github.com/grafana/loki/pkg/helpers"
"github.com/grafana/loki/pkg/iter" "github.com/grafana/loki/pkg/iter"
@ -149,18 +150,27 @@ func (i *instance) lookupStreams(req *logproto.QueryRequest, matchers []*labels.
i.streamsMtx.RLock() i.streamsMtx.RLock()
defer i.streamsMtx.RUnlock() defer i.streamsMtx.RUnlock()
var err error filters, matchers := cutil.SplitFiltersAndMatchers(matchers)
ids := i.index.Lookup(matchers) ids := i.index.Lookup(matchers)
iterators := make([]iter.EntryIterator, len(ids)) iterators := make([]iter.EntryIterator, 0, len(ids))
for j := range ids {
stream, ok := i.streams[ids[j]] outer:
for _, streamID := range ids {
stream, ok := i.streams[streamID]
if !ok { if !ok {
return nil, ErrStreamMissing return nil, ErrStreamMissing
} }
iterators[j], err = stream.Iterator(req.Start, req.End, req.Direction) lbs := client.FromLabelAdaptersToLabels(stream.labels)
for _, filter := range filters {
if !filter.Matches(lbs.Get(filter.Name)) {
continue outer
}
}
iter, err := stream.Iterator(req.Start, req.End, req.Direction)
if err != nil { if err != nil {
return nil, err return nil, err
} }
iterators = append(iterators, iter)
} }
return iterators, nil return iterators, nil
} }

Loading…
Cancel
Save