From 3718494b35397feae420998bd6b7020fe0f7dc79 Mon Sep 17 00:00:00 2001 From: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Date: Wed, 20 Oct 2021 16:50:34 +0200 Subject: [PATCH] Prometheus: Send errors from backend in response (#40674) * Prometheus: Send errors in response * Remove debugging placeholder * Add debugging logs --- pkg/tsdb/prometheus/prometheus.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkg/tsdb/prometheus/prometheus.go b/pkg/tsdb/prometheus/prometheus.go index 94897e39e21..32f4fc890d2 100644 --- a/pkg/tsdb/prometheus/prometheus.go +++ b/pkg/tsdb/prometheus/prometheus.go @@ -159,7 +159,9 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest) if query.RangeQuery { rangeResponse, _, err := client.QueryRange(ctx, query.Expr, timeRange) if err != nil { - return &result, fmt.Errorf("query: %s failed with: %v", query.Expr, err) + plog.Error("Range query", query.Expr, "failed with", err) + result.Responses[query.RefId] = backend.DataResponse{Error: err} + continue } response[RangeQueryType] = rangeResponse } @@ -167,16 +169,19 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest) if query.InstantQuery { instantResponse, _, err := client.Query(ctx, query.Expr, query.End) if err != nil { - return &result, fmt.Errorf("query: %s failed with: %v", query.Expr, err) + plog.Error("Instant query", query.Expr, "failed with", err) + result.Responses[query.RefId] = backend.DataResponse{Error: err} + continue } response[InstantQueryType] = instantResponse } - // For now, we ignore exemplar errors and continue with processing of other results + if query.ExemplarQuery { exemplarResponse, err := client.QueryExemplars(ctx, query.Expr, timeRange.Start, timeRange.End) if err != nil { - exemplarResponse = nil plog.Error("Exemplar query", query.Expr, "failed with", err) + result.Responses[query.RefId] = backend.DataResponse{Error: err} + continue } response[ExemplarQueryType] = exemplarResponse }