MCPcopy
hub / github.com/grafana/tempo / NewRetryWare

Function NewRetryWare

modules/frontend/pipeline/sync_handler_retry.go:19–38  ·  view source on GitHub ↗
(maxRetries int, incrementRetriedRequestWeight bool, registerer prometheus.Registerer)

Source from the content-addressed store, hash-verified

17)
18
19func NewRetryWare(maxRetries int, incrementRetriedRequestWeight bool, registerer prometheus.Registerer) Middleware {
20 retriesCount := promauto.With(registerer).NewHistogram(prometheus.HistogramOpts{
21 Namespace: "tempo",
22 Name: "query_frontend_retries",
23 Help: "Number of times a request is retried.",
24 Buckets: []float64{0, 1, 2, 3, 4, 5},
25 NativeHistogramBucketFactor: 1.1,
26 NativeHistogramMaxBucketNumber: 100,
27 NativeHistogramMinResetDuration: 1 * time.Hour,
28 })
29
30 return MiddlewareFunc(func(next RoundTripper) RoundTripper {
31 return retryWare{
32 next: next,
33 maxRetries: maxRetries,
34 retriesCount: retriesCount,
35 incrementRetriedRequestWeight: incrementRetriedRequestWeight,
36 }
37 })
38}
39
40type retryWare struct {
41 next RoundTripper

Callers 3

NewFunction · 0.92
TestRetryFunction · 0.85

Calls 2

MiddlewareFuncFuncType · 0.70
NewHistogramMethod · 0.65

Tested by 2

TestRetryFunction · 0.68