(ctx context.Context, req *tempopb.QueryRangeRequest)
| 23 | } |
| 24 | |
| 25 | func (q *Querier) queryRangeRecent(ctx context.Context, req *tempopb.QueryRangeRequest) (*tempopb.QueryRangeResponse, error) { |
| 26 | // correct max series limit logic should've been set by the query-frontend sharder |
| 27 | c, err := traceql.QueryRangeCombinerFor(req, traceql.AggregateModeSum, int(req.MaxSeries)) |
| 28 | if err != nil { |
| 29 | return nil, err |
| 30 | } |
| 31 | |
| 32 | results, err := q.forLiveStoreMetricsRing(ctx, func(ctx context.Context, client tempopb.MetricsClient) (any, error) { |
| 33 | return client.QueryRange(ctx, req) |
| 34 | }) |
| 35 | if err != nil { |
| 36 | _ = level.Error(log.Logger).Log("msg", "error querying live-stores in Querier.queryRangeRecent", "err", err) |
| 37 | return nil, fmt.Errorf("error querying live-stores in Querier.queryRangeRecent: %w", err) |
| 38 | } |
| 39 | |
| 40 | for _, result := range results { |
| 41 | resp := result.(*tempopb.QueryRangeResponse) |
| 42 | c.Combine(resp) |
| 43 | if c.MaxSeriesReached() { |
| 44 | break |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | return c.Response(), nil |
| 49 | } |
| 50 | |
| 51 | func (q *Querier) queryBlock(ctx context.Context, req *tempopb.QueryRangeRequest) (*tempopb.QueryRangeResponse, error) { |
| 52 | tenantID, err := validation.ExtractValidTenantID(ctx) |
no test coverage detected