Move err to be the last return value from storage.Select. (#5054)

Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
This commit is contained in:
Tom Wilkie 2019-01-02 11:10:13 +00:00 committed by GitHub
parent 7d30ccd0eb
commit 6e08029b56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 28 additions and 28 deletions

View file

@ -563,7 +563,7 @@ func (ng *Engine) populateSeries(ctx context.Context, q storage.Queryable, s *Ev
params.End = params.End - offsetMilliseconds params.End = params.End - offsetMilliseconds
} }
set, err, wrn = querier.Select(params, n.LabelMatchers...) set, wrn, err = querier.Select(params, n.LabelMatchers...)
warnings = append(warnings, wrn...) warnings = append(warnings, wrn...)
if err != nil { if err != nil {
level.Error(ng.logger).Log("msg", "error selecting series set", "err", err) level.Error(ng.logger).Log("msg", "error selecting series set", "err", err)
@ -582,7 +582,7 @@ func (ng *Engine) populateSeries(ctx context.Context, q storage.Queryable, s *Ev
params.End = params.End - offsetMilliseconds params.End = params.End - offsetMilliseconds
} }
set, err, wrn = querier.Select(params, n.LabelMatchers...) set, wrn, err = querier.Select(params, n.LabelMatchers...)
warnings = append(warnings, wrn...) warnings = append(warnings, wrn...)
if err != nil { if err != nil {
level.Error(ng.logger).Log("msg", "error selecting series set", "err", err) level.Error(ng.logger).Log("msg", "error selecting series set", "err", err)

View file

@ -169,8 +169,8 @@ type errQuerier struct {
err error err error
} }
func (q *errQuerier) Select(*storage.SelectParams, ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) { func (q *errQuerier) Select(*storage.SelectParams, ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
return errSeriesSet{err: q.err}, q.err, nil return errSeriesSet{err: q.err}, nil, q.err
} }
func (*errQuerier) LabelValues(name string) ([]string, error) { return nil, nil } func (*errQuerier) LabelValues(name string) ([]string, error) { return nil, nil }
func (*errQuerier) LabelNames() ([]string, error) { return nil, nil } func (*errQuerier) LabelNames() ([]string, error) { return nil, nil }

View file

@ -538,7 +538,7 @@ func TestStaleness(t *testing.T) {
matcher, err := labels.NewMatcher(labels.MatchEqual, model.MetricNameLabel, "a_plus_one") matcher, err := labels.NewMatcher(labels.MatchEqual, model.MetricNameLabel, "a_plus_one")
testutil.Ok(t, err) testutil.Ok(t, err)
set, err, _ := querier.Select(nil, matcher) set, _, err := querier.Select(nil, matcher)
testutil.Ok(t, err) testutil.Ok(t, err)
samples, err := readSeriesSet(set) samples, err := readSeriesSet(set)

View file

@ -228,11 +228,11 @@ func NewMergeQuerier(primaryQuerier Querier, queriers []Querier) Querier {
} }
// Select returns a set of series that matches the given label matchers. // Select returns a set of series that matches the given label matchers.
func (q *mergeQuerier) Select(params *SelectParams, matchers ...*labels.Matcher) (SeriesSet, error, Warnings) { func (q *mergeQuerier) Select(params *SelectParams, matchers ...*labels.Matcher) (SeriesSet, Warnings, error) {
seriesSets := make([]SeriesSet, 0, len(q.queriers)) seriesSets := make([]SeriesSet, 0, len(q.queriers))
var warnings Warnings var warnings Warnings
for _, querier := range q.queriers { for _, querier := range q.queriers {
set, err, wrn := querier.Select(params, matchers...) set, wrn, err := querier.Select(params, matchers...)
q.setQuerierMap[set] = querier q.setQuerierMap[set] = querier
if wrn != nil { if wrn != nil {
warnings = append(warnings, wrn...) warnings = append(warnings, wrn...)
@ -244,12 +244,12 @@ func (q *mergeQuerier) Select(params *SelectParams, matchers ...*labels.Matcher)
warnings = append(warnings, err) warnings = append(warnings, err)
continue continue
} else { } else {
return nil, err, nil return nil, nil, err
} }
} }
seriesSets = append(seriesSets, set) seriesSets = append(seriesSets, set)
} }
return NewMergeSeriesSet(seriesSets, q), nil, warnings return NewMergeSeriesSet(seriesSets, q), warnings, nil
} }
// LabelValues returns all potential values for a label name. // LabelValues returns all potential values for a label name.

View file

@ -52,7 +52,7 @@ type Queryable interface {
// Querier provides reading access to time series data. // Querier provides reading access to time series data.
type Querier interface { type Querier interface {
// Select returns a set of series that matches the given label matchers. // Select returns a set of series that matches the given label matchers.
Select(*SelectParams, ...*labels.Matcher) (SeriesSet, error, Warnings) Select(*SelectParams, ...*labels.Matcher) (SeriesSet, Warnings, error)
// LabelValues returns all potential values for a label name. // LabelValues returns all potential values for a label name.
LabelValues(name string) ([]string, error) LabelValues(name string) ([]string, error)

View file

@ -26,7 +26,7 @@ func NoopQuerier() Querier {
return noopQuerier{} return noopQuerier{}
} }
func (noopQuerier) Select(*SelectParams, ...*labels.Matcher) (SeriesSet, error, Warnings) { func (noopQuerier) Select(*SelectParams, ...*labels.Matcher) (SeriesSet, Warnings, error) {
return NoopSeriesSet(), nil, nil return NoopSeriesSet(), nil, nil
} }

View file

@ -59,10 +59,10 @@ type querier struct {
// Select implements storage.Querier and uses the given matchers to read series // Select implements storage.Querier and uses the given matchers to read series
// sets from the Client. // sets from the Client.
func (q *querier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) { func (q *querier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
query, err := ToQuery(q.mint, q.maxt, matchers, p) query, err := ToQuery(q.mint, q.maxt, matchers, p)
if err != nil { if err != nil {
return nil, err, nil return nil, nil, err
} }
remoteReadGauge := remoteReadQueries.WithLabelValues(q.client.Name()) remoteReadGauge := remoteReadQueries.WithLabelValues(q.client.Name())
@ -71,7 +71,7 @@ func (q *querier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (
res, err := q.client.Read(q.ctx, query) res, err := q.client.Read(q.ctx, query)
if err != nil { if err != nil {
return nil, err, nil return nil, nil, err
} }
return FromQueryResult(res), nil, nil return FromQueryResult(res), nil, nil
@ -117,13 +117,13 @@ type externalLabelsQuerier struct {
// Select adds equality matchers for all external labels to the list of matchers // Select adds equality matchers for all external labels to the list of matchers
// before calling the wrapped storage.Queryable. The added external labels are // before calling the wrapped storage.Queryable. The added external labels are
// removed from the returned series sets. // removed from the returned series sets.
func (q externalLabelsQuerier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) { func (q externalLabelsQuerier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
m, added := q.addExternalLabels(matchers) m, added := q.addExternalLabels(matchers)
s, err, warnings := q.Querier.Select(p, m...) s, warnings, err := q.Querier.Select(p, m...)
if err != nil { if err != nil {
return nil, err, warnings return nil, warnings, err
} }
return newSeriesSetFilter(s, added), nil, warnings return newSeriesSetFilter(s, added), warnings, nil
} }
// PreferLocalStorageFilter returns a QueryableFunc which creates a NoopQuerier // PreferLocalStorageFilter returns a QueryableFunc which creates a NoopQuerier
@ -170,7 +170,7 @@ type requiredMatchersQuerier struct {
// Select returns a NoopSeriesSet if the given matchers don't match the label // Select returns a NoopSeriesSet if the given matchers don't match the label
// set of the requiredMatchersQuerier. Otherwise it'll call the wrapped querier. // set of the requiredMatchersQuerier. Otherwise it'll call the wrapped querier.
func (q requiredMatchersQuerier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) { func (q requiredMatchersQuerier) Select(p *storage.SelectParams, matchers ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
ms := q.requiredMatchers ms := q.requiredMatchers
for _, m := range matchers { for _, m := range matchers {
for i, r := range ms { for i, r := range ms {

View file

@ -42,7 +42,7 @@ func TestExternalLabelsQuerierSelect(t *testing.T) {
externalLabels: model.LabelSet{"region": "europe"}, externalLabels: model.LabelSet{"region": "europe"},
} }
want := newSeriesSetFilter(mockSeriesSet{}, q.externalLabels) want := newSeriesSetFilter(mockSeriesSet{}, q.externalLabels)
have, err, _ := q.Select(nil, matchers...) have, _, err := q.Select(nil, matchers...)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
@ -157,7 +157,7 @@ type mockSeriesSet struct {
storage.SeriesSet storage.SeriesSet
} }
func (mockQuerier) Select(*storage.SelectParams, ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) { func (mockQuerier) Select(*storage.SelectParams, ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
return mockSeriesSet{}, nil, nil return mockSeriesSet{}, nil, nil
} }
@ -313,7 +313,7 @@ func TestRequiredLabelsQuerierSelect(t *testing.T) {
requiredMatchers: test.requiredMatchers, requiredMatchers: test.requiredMatchers,
} }
have, err, _ := q.Select(nil, test.matchers...) have, _, err := q.Select(nil, test.matchers...)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }

View file

@ -230,7 +230,7 @@ type querier struct {
q tsdb.Querier q tsdb.Querier
} }
func (q querier) Select(_ *storage.SelectParams, oms ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) { func (q querier) Select(_ *storage.SelectParams, oms ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
ms := make([]tsdbLabels.Matcher, 0, len(oms)) ms := make([]tsdbLabels.Matcher, 0, len(oms))
for _, om := range oms { for _, om := range oms {
@ -238,7 +238,7 @@ func (q querier) Select(_ *storage.SelectParams, oms ...*labels.Matcher) (storag
} }
set, err := q.q.Select(ms...) set, err := q.q.Select(ms...)
if err != nil { if err != nil {
return nil, err, nil return nil, nil, err
} }
return seriesSet{set: set}, nil, nil return seriesSet{set: set}, nil, nil
} }

View file

@ -488,7 +488,7 @@ func (api *API) series(r *http.Request) apiFuncResult {
var sets []storage.SeriesSet var sets []storage.SeriesSet
var warnings storage.Warnings var warnings storage.Warnings
for _, mset := range matcherSets { for _, mset := range matcherSets {
s, err, wrn := q.Select(nil, mset...) //TODO s, wrn, err := q.Select(nil, mset...) //TODO
warnings = append(warnings, wrn...) warnings = append(warnings, wrn...)
if err != nil { if err != nil {
return apiFuncResult{nil, &apiError{errorExec, err}, warnings, nil} return apiFuncResult{nil, &apiError{errorExec, err}, warnings, nil}
@ -883,7 +883,7 @@ func (api *API) remoteRead(w http.ResponseWriter, r *http.Request) {
} }
} }
set, err, _ := querier.Select(selectParams, filteredMatchers...) set, _, err := querier.Select(selectParams, filteredMatchers...)
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return

View file

@ -379,7 +379,7 @@ func setupRemote(s storage.Storage) *httptest.Server {
} }
defer querier.Close() defer querier.Close()
set, err, _ := querier.Select(selectParams, matchers...) set, _, err := querier.Select(selectParams, matchers...)
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return

View file

@ -87,7 +87,7 @@ func (h *Handler) federation(w http.ResponseWriter, req *http.Request) {
var sets []storage.SeriesSet var sets []storage.SeriesSet
for _, mset := range matcherSets { for _, mset := range matcherSets {
s, err, wrns := q.Select(params, mset...) s, wrns, err := q.Select(params, mset...)
if wrns != nil { if wrns != nil {
level.Debug(h.logger).Log("msg", "federation select returned warnings", "warnings", wrns) level.Debug(h.logger).Log("msg", "federation select returned warnings", "warnings", wrns)
federationErrors.Add(float64(len(wrns))) federationErrors.Add(float64(len(wrns)))