mirror of
https://github.com/prometheus/prometheus
synced 2024-12-22 22:43:19 +00:00
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:
parent
7d30ccd0eb
commit
6e08029b56
@ -563,7 +563,7 @@ func (ng *Engine) populateSeries(ctx context.Context, q storage.Queryable, s *Ev
|
||||
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...)
|
||||
if err != nil {
|
||||
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
|
||||
}
|
||||
|
||||
set, err, wrn = querier.Select(params, n.LabelMatchers...)
|
||||
set, wrn, err = querier.Select(params, n.LabelMatchers...)
|
||||
warnings = append(warnings, wrn...)
|
||||
if err != nil {
|
||||
level.Error(ng.logger).Log("msg", "error selecting series set", "err", err)
|
||||
|
@ -169,8 +169,8 @@ type errQuerier struct {
|
||||
err error
|
||||
}
|
||||
|
||||
func (q *errQuerier) Select(*storage.SelectParams, ...*labels.Matcher) (storage.SeriesSet, error, storage.Warnings) {
|
||||
return errSeriesSet{err: q.err}, q.err, nil
|
||||
func (q *errQuerier) Select(*storage.SelectParams, ...*labels.Matcher) (storage.SeriesSet, storage.Warnings, error) {
|
||||
return errSeriesSet{err: q.err}, nil, q.err
|
||||
}
|
||||
func (*errQuerier) LabelValues(name string) ([]string, error) { return nil, nil }
|
||||
func (*errQuerier) LabelNames() ([]string, error) { return nil, nil }
|
||||
|
@ -538,7 +538,7 @@ func TestStaleness(t *testing.T) {
|
||||
matcher, err := labels.NewMatcher(labels.MatchEqual, model.MetricNameLabel, "a_plus_one")
|
||||
testutil.Ok(t, err)
|
||||
|
||||
set, err, _ := querier.Select(nil, matcher)
|
||||
set, _, err := querier.Select(nil, matcher)
|
||||
testutil.Ok(t, err)
|
||||
|
||||
samples, err := readSeriesSet(set)
|
||||
|
@ -228,11 +228,11 @@ func NewMergeQuerier(primaryQuerier Querier, queriers []Querier) Querier {
|
||||
}
|
||||
|
||||
// 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))
|
||||
var warnings Warnings
|
||||
for _, querier := range q.queriers {
|
||||
set, err, wrn := querier.Select(params, matchers...)
|
||||
set, wrn, err := querier.Select(params, matchers...)
|
||||
q.setQuerierMap[set] = querier
|
||||
if wrn != nil {
|
||||
warnings = append(warnings, wrn...)
|
||||
@ -244,12 +244,12 @@ func (q *mergeQuerier) Select(params *SelectParams, matchers ...*labels.Matcher)
|
||||
warnings = append(warnings, err)
|
||||
continue
|
||||
} else {
|
||||
return nil, err, nil
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
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.
|
||||
|
@ -52,7 +52,7 @@ type Queryable interface {
|
||||
// Querier provides reading access to time series data.
|
||||
type Querier interface {
|
||||
// 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(name string) ([]string, error)
|
||||
|
@ -26,7 +26,7 @@ func NoopQuerier() Querier {
|
||||
return noopQuerier{}
|
||||
}
|
||||
|
||||
func (noopQuerier) Select(*SelectParams, ...*labels.Matcher) (SeriesSet, error, Warnings) {
|
||||
func (noopQuerier) Select(*SelectParams, ...*labels.Matcher) (SeriesSet, Warnings, error) {
|
||||
return NoopSeriesSet(), nil, nil
|
||||
}
|
||||
|
||||
|
@ -59,10 +59,10 @@ type querier struct {
|
||||
|
||||
// Select implements storage.Querier and uses the given matchers to read series
|
||||
// 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)
|
||||
if err != nil {
|
||||
return nil, err, nil
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
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)
|
||||
if err != nil {
|
||||
return nil, err, nil
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
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
|
||||
// before calling the wrapped storage.Queryable. The added external labels are
|
||||
// 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)
|
||||
s, err, warnings := q.Querier.Select(p, m...)
|
||||
s, warnings, err := q.Querier.Select(p, m...)
|
||||
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
|
||||
@ -170,7 +170,7 @@ type requiredMatchersQuerier struct {
|
||||
|
||||
// Select returns a NoopSeriesSet if the given matchers don't match the label
|
||||
// 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
|
||||
for _, m := range matchers {
|
||||
for i, r := range ms {
|
||||
|
@ -42,7 +42,7 @@ func TestExternalLabelsQuerierSelect(t *testing.T) {
|
||||
externalLabels: model.LabelSet{"region": "europe"},
|
||||
}
|
||||
want := newSeriesSetFilter(mockSeriesSet{}, q.externalLabels)
|
||||
have, err, _ := q.Select(nil, matchers...)
|
||||
have, _, err := q.Select(nil, matchers...)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@ -157,7 +157,7 @@ type mockSeriesSet struct {
|
||||
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
|
||||
}
|
||||
|
||||
@ -313,7 +313,7 @@ func TestRequiredLabelsQuerierSelect(t *testing.T) {
|
||||
requiredMatchers: test.requiredMatchers,
|
||||
}
|
||||
|
||||
have, err, _ := q.Select(nil, test.matchers...)
|
||||
have, _, err := q.Select(nil, test.matchers...)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ type querier struct {
|
||||
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))
|
||||
|
||||
for _, om := range oms {
|
||||
@ -238,7 +238,7 @@ func (q querier) Select(_ *storage.SelectParams, oms ...*labels.Matcher) (storag
|
||||
}
|
||||
set, err := q.q.Select(ms...)
|
||||
if err != nil {
|
||||
return nil, err, nil
|
||||
return nil, nil, err
|
||||
}
|
||||
return seriesSet{set: set}, nil, nil
|
||||
}
|
||||
|
@ -488,7 +488,7 @@ func (api *API) series(r *http.Request) apiFuncResult {
|
||||
var sets []storage.SeriesSet
|
||||
var warnings storage.Warnings
|
||||
for _, mset := range matcherSets {
|
||||
s, err, wrn := q.Select(nil, mset...) //TODO
|
||||
s, wrn, err := q.Select(nil, mset...) //TODO
|
||||
warnings = append(warnings, wrn...)
|
||||
if err != 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 {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
|
@ -379,7 +379,7 @@ func setupRemote(s storage.Storage) *httptest.Server {
|
||||
}
|
||||
defer querier.Close()
|
||||
|
||||
set, err, _ := querier.Select(selectParams, matchers...)
|
||||
set, _, err := querier.Select(selectParams, matchers...)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
|
@ -87,7 +87,7 @@ func (h *Handler) federation(w http.ResponseWriter, req *http.Request) {
|
||||
|
||||
var sets []storage.SeriesSet
|
||||
for _, mset := range matcherSets {
|
||||
s, err, wrns := q.Select(params, mset...)
|
||||
s, wrns, err := q.Select(params, mset...)
|
||||
if wrns != nil {
|
||||
level.Debug(h.logger).Log("msg", "federation select returned warnings", "warnings", wrns)
|
||||
federationErrors.Add(float64(len(wrns)))
|
||||
|
Loading…
Reference in New Issue
Block a user