From 8bc5e3a1fc41eaf51f07f587e948205270916e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=8C=B2=20Harry=20=F0=9F=8C=8A=20John=20=F0=9F=8F=94?= Date: Thu, 23 Feb 2023 10:55:33 -0800 Subject: [PATCH 1/2] Fix returning 5XX for limits errors in series API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 🌲 Harry 🌊 John 🏔 --- pkg/distributor/distributor.go | 8 ++++---- pkg/distributor/distributor_test.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/distributor/distributor.go b/pkg/distributor/distributor.go index 1b02f84a384..9b669772006 100644 --- a/pkg/distributor/distributor.go +++ b/pkg/distributor/distributor.go @@ -1034,11 +1034,11 @@ func (d *Distributor) MetricsForLabelMatchers(ctx context.Context, from, through return nil, err } if err := queryLimiter.AddDataBytes(resp.Size()); err != nil { - return nil, err + return nil, validation.LimitError(err.Error()) } for _, m := range resp.Metric { if err := queryLimiter.AddSeries(m.Labels); err != nil { - return nil, err + return nil, validation.LimitError(err.Error()) } m := cortexpb.FromLabelAdaptersToMetric(m.Labels) fingerprint := m.Fingerprint() @@ -1065,7 +1065,7 @@ func (d *Distributor) MetricsForLabelMatchersStream(ctx context.Context, from, t for { resp, err := stream.Recv() if err := queryLimiter.AddDataBytes(resp.Size()); err != nil { - return nil, err + return nil, validation.LimitError(err.Error()) } if err == io.EOF { @@ -1078,7 +1078,7 @@ func (d *Distributor) MetricsForLabelMatchersStream(ctx context.Context, from, t m := cortexpb.FromLabelAdaptersToMetricWithCopy(metric.Labels) if err := queryLimiter.AddSeries(metric.Labels); err != nil { - return nil, err + return nil, validation.LimitError(err.Error()) } fingerprint := m.Fingerprint() diff --git a/pkg/distributor/distributor_test.go b/pkg/distributor/distributor_test.go index 7f87eb7864b..2112b40c933 100644 --- a/pkg/distributor/distributor_test.go +++ b/pkg/distributor/distributor_test.go @@ -2173,7 +2173,7 @@ func TestDistributor_MetricsForLabelMatchers(t *testing.T) { metrics, err := ds[0].MetricsForLabelMatchers(ctx, now, now, testData.matchers...) if testData.expectedErr != nil { - assert.EqualError(t, err, testData.expectedErr.Error()) + assert.ErrorIs(t, err, testData.expectedErr) return } @@ -2190,7 +2190,7 @@ func TestDistributor_MetricsForLabelMatchers(t *testing.T) { { metrics, err := ds[0].MetricsForLabelMatchersStream(ctx, now, now, testData.matchers...) if testData.expectedErr != nil { - assert.EqualError(t, err, testData.expectedErr.Error()) + assert.ErrorIs(t, err, testData.expectedErr) return } From b9790fcf597fe8bd65571fe77cd84268ca0684b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=8C=B2=20Harry=20=F0=9F=8C=8A=20John=20=F0=9F=8F=94?= Date: Thu, 23 Feb 2023 11:06:52 -0800 Subject: [PATCH 2/2] Add CHANGELOG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 🌲 Harry 🌊 John 🏔 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 616d445e238..d77a2bfbfce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ * [BUGFIX] Ingester: Fix panic when querying metadata from blocks that are being deleted. #5119 * [BUGFIX] Ring: Fix case when dynamodb kv reaches the limit of 25 actions per batch call. #5136 * [BUGFIX] Query-frontend: Fix sorted queries do not produce sorted results for shardable queries. #5148 +* [BUGFIX] Querier: Fix `/api/v1/series` returning 5XX instead of 4XX when limits are hit. #5169 * [FEATURE] Alertmanager: Add support for time_intervals. #5102 ## 1.14.0 2022-12-02