newAsyncSearchSharder creates a sharding middleware for search
(reader tempodb.Reader, o overrides.Interface, cfg SearchSharderConfig, skipASTTransformations []string, jobsPerQuery *prometheus.HistogramVec, logger log.Logger)
| 56 | |
| 57 | // newAsyncSearchSharder creates a sharding middleware for search |
| 58 | func newAsyncSearchSharder(reader tempodb.Reader, o overrides.Interface, cfg SearchSharderConfig, skipASTTransformations []string, jobsPerQuery *prometheus.HistogramVec, logger log.Logger) pipeline.AsyncMiddleware[combiner.PipelineResponse] { |
| 59 | return pipeline.AsyncMiddlewareFunc[combiner.PipelineResponse](func(next pipeline.AsyncRoundTripper[combiner.PipelineResponse]) pipeline.AsyncRoundTripper[combiner.PipelineResponse] { |
| 60 | return asyncSearchSharder{ |
| 61 | next: next, |
| 62 | reader: reader, |
| 63 | overrides: o, |
| 64 | |
| 65 | cfg: cfg, |
| 66 | skipASTTransformations: skipASTTransformations, |
| 67 | logger: logger, |
| 68 | jobsPerQuery: jobsPerQuery, |
| 69 | } |
| 70 | }) |
| 71 | } |
| 72 | |
| 73 | // RoundTrip implements http.RoundTripper |
| 74 | // execute up to concurrentRequests simultaneously where each request scans ~targetMBsPerRequest |
no outgoing calls