diff --git a/pkg/tsdb/prometheus/querydata/request.go b/pkg/tsdb/prometheus/querydata/request.go index f9a3af593bd..f95994f4f61 100644 --- a/pkg/tsdb/prometheus/querydata/request.go +++ b/pkg/tsdb/prometheus/querydata/request.go @@ -153,6 +153,12 @@ func (s *QueryData) fetch(ctx context.Context, client *client.Client, q *models. func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models.Query, headers map[string]string) backend.DataResponse { res, err := c.QueryRange(ctx, q) + if err != nil { + return backend.DataResponse{ + Error: err, + } + } + defer func() { err := res.Body.Close() if err != nil { @@ -160,16 +166,17 @@ func (s *QueryData) rangeQuery(ctx context.Context, c *client.Client, q *models. } }() - if err != nil { - return backend.DataResponse{ - Error: err, - } - } return s.parseResponse(ctx, q, res) } func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *models.Query, headers map[string]string) backend.DataResponse { res, err := c.QueryInstant(ctx, q) + if err != nil { + return backend.DataResponse{ + Error: err, + } + } + defer func() { err := res.Body.Close() if err != nil { @@ -177,28 +184,23 @@ func (s *QueryData) instantQuery(ctx context.Context, c *client.Client, q *model } }() - if err != nil { - return backend.DataResponse{ - Error: err, - } - } return s.parseResponse(ctx, q, res) } func (s *QueryData) exemplarQuery(ctx context.Context, c *client.Client, q *models.Query, headers map[string]string) backend.DataResponse { res, err := c.QueryExemplars(ctx, q) + if err != nil { + return backend.DataResponse{ + Error: err, + } + } + defer func() { err := res.Body.Close() if err != nil { s.log.Warn("failed to close response body", "error", err) } }() - - if err != nil { - return backend.DataResponse{ - Error: err, - } - } return s.parseResponse(ctx, q, res) }