Open dimitarvdimitrov opened 4 days ago
related: https://github.com/grafana/mimir-squad/issues/2625
Whether things end up being RoundTrippers or middlewares, I think we will keep getting tripped up if we do not have a vision for how our query frontend layers each want to support varying subsets of the request types (remote read, range, instant, labels, cardinality, active series, active native histogram series, series, metadata, and query exemplars).
What is the problem you are trying to solve?
A transient failure for a label names or values query is directly returned to the user.
Which solution do you envision (roughly)?
Extend the middleware machinery so that we can reuse the
retry
middleware on labels requests too. Currently it can't be directly reused because middlewares are only working withMetricsQueryRequest
.Maybe we should make
retry
generic so that it works withLabelsQueryRequest
too.Have you considered any alternatives?
Implement a retry round-tripper and wrap the labels round-tripper. This will duplicate code and will require us to keep the two implementations in sync. I think we were also trying to steer away from round-trippers. See https://github.com/grafana/mimir/pull/7536, https://github.com/grafana/mimir-squad/issues/1938
Any additional context to share?
No response
How long do you think this would take to be developed?
Small (<= 1 month dev)
What are the documentation dependencies?
No response
Proposer?
No response