From feaf9c32325668a1b01f81d813daac33a39d1b05 Mon Sep 17 00:00:00 2001 From: Christian Haudum Date: Fri, 2 Dec 2022 13:25:23 +0100 Subject: [PATCH] Log query string on retry alongside the error (#7834) **What this PR does / why we need it**: For better observability of query retries. Signed-off-by: Christian Haudum --- pkg/querier/queryrange/queryrangebase/retry.go | 2 +- pkg/querier/queryrange/queryrangebase/retry_test.go | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/querier/queryrange/queryrangebase/retry.go b/pkg/querier/queryrange/queryrangebase/retry.go index b0bc5af50e..7b4ffb964f 100644 --- a/pkg/querier/queryrange/queryrangebase/retry.go +++ b/pkg/querier/queryrange/queryrangebase/retry.go @@ -70,7 +70,7 @@ func (r retry) Do(ctx context.Context, req Request) (Response, error) { httpResp, ok := httpgrpc.HTTPResponseFromError(err) if !ok || httpResp.Code/100 == 5 { lastErr = err - level.Error(util_log.WithContext(ctx, r.log)).Log("msg", "error processing request", "try", tries, "err", err) + level.Error(util_log.WithContext(ctx, r.log)).Log("msg", "error processing request", "try", tries, "query", req.GetQuery(), "err", err) continue } diff --git a/pkg/querier/queryrange/queryrangebase/retry_test.go b/pkg/querier/queryrange/queryrangebase/retry_test.go index 6346f5b3d3..3ad45708d5 100644 --- a/pkg/querier/queryrange/queryrangebase/retry_test.go +++ b/pkg/querier/queryrange/queryrangebase/retry_test.go @@ -60,7 +60,10 @@ func TestRetry(t *testing.T) { t.Run(tc.name, func(t *testing.T) { try.Store(0) h := NewRetryMiddleware(log.NewNopLogger(), 5, nil).Wrap(tc.handler) - resp, err := h.Do(context.Background(), nil) + req := &PrometheusRequest{ + Query: `{env="test"} |= "error"`, + } + resp, err := h.Do(context.Background(), req) require.Equal(t, tc.err, err) require.Equal(t, tc.resp, resp) }) @@ -68,6 +71,10 @@ func TestRetry(t *testing.T) { } func Test_RetryMiddlewareCancel(t *testing.T) { + req := &PrometheusRequest{ + Query: `{env="test"} |= "error"`, + } + var try atomic.Int32 ctx, cancel := context.WithCancel(context.Background()) cancel() @@ -76,7 +83,7 @@ func Test_RetryMiddlewareCancel(t *testing.T) { try.Inc() return nil, ctx.Err() }), - ).Do(ctx, nil) + ).Do(ctx, req) require.Equal(t, int32(0), try.Load()) require.Equal(t, ctx.Err(), err) @@ -87,7 +94,7 @@ func Test_RetryMiddlewareCancel(t *testing.T) { cancel() return nil, errors.New("failed") }), - ).Do(ctx, nil) + ).Do(ctx, req) require.Equal(t, int32(1), try.Load()) require.Equal(t, ctx.Err(), err) }