From ad3fc957558022dc4199a6c060f06bf038c7d7bd Mon Sep 17 00:00:00 2001 From: Brendan O'Handley Date: Wed, 13 Nov 2024 20:19:30 -0600 Subject: [PATCH] Revert "Prometheus: Check both error and http status for source of error " (#96396) --- pkg/promlib/querydata/request.go | 47 +++++++------------------------- 1 file changed, 10 insertions(+), 37 deletions(-) diff --git a/pkg/promlib/querydata/request.go b/pkg/promlib/querydata/request.go index 6b5c4b98266..625113a69c9 100644 --- a/pkg/promlib/querydata/request.go +++ b/pkg/promlib/querydata/request.go @@ -234,13 +234,9 @@ func (s *QueryData) fetch(traceCtx context.Context, client *client.Client, q *mo func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models.Query, enablePrometheusDataplaneFlag bool) backend.DataResponse { res, err := c.QueryRange(ctx, q) if err != nil { - return addErrorSourceToDataResponse(err) - } - - if res.StatusCode/100 != 2 { - // for differentiating the source of http errors by status code return backend.DataResponse{ - ErrorSource: backend.ErrorSourceFromHTTPStatus(res.StatusCode), + Error: err, + Status: backend.StatusBadGateway, } } @@ -257,22 +253,16 @@ func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models. func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *models.Query, enablePrometheusDataplaneFlag bool) backend.DataResponse { res, err := c.QueryInstant(ctx, q) if err != nil { - // confirm that it is a downstream error - return addErrorSourceToDataResponse(err) + return backend.DataResponse{ + Error: err, + Status: backend.StatusBadGateway, + } } - if res.StatusCode/100 != 2 { - // This is only for health check fall back scenario - // add more details to the health check error - if q.RefId == "__healthcheck__" { - return backend.DataResponse{ - Error: errors.New(res.Status), - ErrorSource: backend.ErrorSourceFromHTTPStatus(res.StatusCode), - } - } - // for differentiating the source of http errors by status code + // This is only for health check fall back scenario + if res.StatusCode != 200 && q.RefId == "__healthcheck__" { return backend.DataResponse{ - ErrorSource: backend.ErrorSourceFromHTTPStatus(res.StatusCode), + Error: errors.New(res.Status), } } @@ -289,13 +279,8 @@ func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *model func (s *QueryData) exemplarQuery(ctx context.Context, c *client.Client, q *models.Query, enablePrometheusDataplaneFlag bool) backend.DataResponse { res, err := c.QueryExemplars(ctx, q) if err != nil { - return addErrorSourceToDataResponse(err) - } - - if res.StatusCode/100 != 2 { - // for differentiating the source of http errors by status code return backend.DataResponse{ - ErrorSource: backend.ErrorSourceFromHTTPStatus(res.StatusCode), + Error: err, } } @@ -319,15 +304,3 @@ func addDataResponse(res *backend.DataResponse, dr *backend.DataResponse) { } dr.Frames = append(dr.Frames, res.Frames...) } - -func addErrorSourceToDataResponse(err error) backend.DataResponse { - response := backend.DataResponse{ - Error: err, - Status: backend.StatusBadGateway, - } - - if backend.IsDownstreamHTTPError(err) { - response.ErrorSource = backend.ErrorSourceDownstream - } - return response -}