From 70efe9e36347fc89c1793c26433390b9fc65f32f Mon Sep 17 00:00:00 2001 From: Felix Beuke Date: Thu, 11 Jan 2024 15:29:20 +0100 Subject: [PATCH] Small fixes for `/active_series` (#7106) * Do not forward `Accept-Encoding` header * add parsed json to error * fix queue dimension for active series queries * log error (cherry picked from commit bc4f4ee6db44240dbd981d1e492a1d40c459b8af) --- pkg/frontend/querymiddleware/shard_active_series.go | 6 ++++-- pkg/frontend/v2/frontend_scheduler_adapter.go | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/frontend/querymiddleware/shard_active_series.go b/pkg/frontend/querymiddleware/shard_active_series.go index 8b7cf8d113b..499c6055b3a 100644 --- a/pkg/frontend/querymiddleware/shard_active_series.go +++ b/pkg/frontend/querymiddleware/shard_active_series.go @@ -12,6 +12,7 @@ import ( "strings" "github.com/go-kit/log" + "github.com/go-kit/log/level" "github.com/grafana/dskit/tenant" jsoniter "github.com/json-iterator/go" "github.com/klauspost/compress/s2" @@ -149,6 +150,7 @@ func buildShardedRequests(ctx context.Context, req *http.Request, numRequests in reqs[i].Header.Set("Content-Type", "application/x-www-form-urlencoded") reqs[i].Header.Del(totalShardsControlHeader) + reqs[i].Header.Del("Accept-Encoding") reqs[i].Body = io.NopCloser(strings.NewReader(vals.Encode())) } @@ -261,9 +263,8 @@ func (s *shardActiveSeriesMiddleware) mergeResponses(ctx context.Context, respon // If the field is neither data nor error, we skip it. it.ReadAny() } - if !foundDataField { - return errors.New("expected data field at top level") + return fmt.Errorf("expected data field at top level, found %s", it.CurrentBuffer()) } if it.WhatIsNext() != jsoniter.ArrayValue { @@ -350,6 +351,7 @@ func (s *shardActiveSeriesMiddleware) writeMergedResponse(ctx context.Context, c stream.WriteArrayEnd() if err := check(); err != nil { + level.Error(s.logger).Log("msg", "error merging partial responses", "err", err.Error()) span.LogFields(otlog.Error(err)) stream.WriteMore() stream.WriteObjectField("status") diff --git a/pkg/frontend/v2/frontend_scheduler_adapter.go b/pkg/frontend/v2/frontend_scheduler_adapter.go index 5fd829530c4..1d37e02b400 100644 --- a/pkg/frontend/v2/frontend_scheduler_adapter.go +++ b/pkg/frontend/v2/frontend_scheduler_adapter.go @@ -85,7 +85,7 @@ func (a *frontendToSchedulerAdapter) extractAdditionalQueueDimensions( return nil, err } return a.queryComponentQueueDimensionFromTimeParams(tenantIDs, start, end, now), nil - case querymiddleware.IsCardinalityQuery(httpRequest.URL.Path): + case querymiddleware.IsCardinalityQuery(httpRequest.URL.Path), querymiddleware.IsActiveSeriesQuery(httpRequest.URL.Path): // cardinality only hits ingesters return []string{ShouldQueryIngestersQueueDimension}, nil default: