# Functions
DoRequests executes a list of requests in parallel.
InstrumentMiddleware can be inserted into the middleware chain to expose timing information.
Adapted from https://github.com/prometheus/client_golang/blob/4b158abea9470f75b6f07460cdc2189b91914562/api/prometheus/v1/api.go#L137.
MergeMiddlewares produces a middleware that applies multiple middleware in turn; ie Merge(f,g,h).Wrap(handler) == f.Wrap(g.Wrap(h.Wrap(handler))).
MergeResponse merges multiple Response into one.
NewEmptyPrometheusResponse returns an empty successful Prometheus query range response.
NewInstrumentMiddlewareMetrics makes a new InstrumentMiddlewareMetrics.
NewRoundTripper merges a set of middlewares into an handler, then inject it into the `next` roundtripper using the codec to translate requests and responses.
SubQueryStepSizeCheck ensures the query doesn't contain too small step size in subqueries.
Adapted from https://github.com/prometheus/client_golang/blob/4b158abea9470f75b6f07460cdc2189b91914562/api/prometheus/v1/api.go#L84.
# Structs
InstrumentMiddlewareMetrics holds the metrics tracked by InstrumentMiddleware.
NoopCollector is a noop collector that can be used as placeholder when no metric should tracked by the instrumentation.
RequestResponse contains a request response and the respective request that was used.
# Interfaces
Buffer can be used to read a response body.
Codec is used to encode/decode query range requests and responses so they can be passed down to middlewares.
Handler is like http.Handle, but specifically for Prometheus query_range calls.
Limits allows us to specify per-tenant runtime limits on the behavior of the query handling code.
Merger is used by middlewares making multiple requests to merge back all responses into a single one.
Middleware is a higher order Handler.
Request represents a query range request that can be process by middlewares.
Response represents a query range response.
# Type aliases
HandlerFunc is like http.HandlerFunc, but for Handler.
MiddlewareFunc is like http.HandlerFunc, but for Middleware.
RoundTripFunc is to http.RoundTripper what http.HandlerFunc is to http.Handler.
Tripperware is a signature for all http client-side middleware.