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

Function NewPerLabelLimiter

modules/generator/registry/per_label_limiter.go:64–76  ·  modules/generator/registry/per_label_limiter.go::NewPerLabelLimiter
(tenant string, maxCardinalityF maxCardinalityFunc, staleDuration time.Duration)

Source from the content-addressed store, hash-verified

62}
63
64func NewPerLabelLimiter(tenant string, maxCardinalityF maxCardinalityFunc, staleDuration time.Duration) *PerLabelLimiter {
65 pll := &PerLabelLimiter{
66 tenant: tenant,
67 maxCardinalityFunc: maxCardinalityF,
68 labelsState: make(map[string]*labelCardinalityState),
69 staleDuration: staleDuration,
70 demandUpdateChan: time.Tick(demandUpdateInterval),
71 pruneChan: time.Tick(removeStaleSeriesInterval),
72 }
73 // init on New, config is refreshed on demand update tick
74 pll.maxCardinality.Store(maxCardinalityF(tenant))
75 return pll
76}
77
78// Limit applies the per-label cardinality limit to the given labels.
79// Labels whose estimated cardinality exceeds the configured max have their

Calls 1

StoreMethod · 0.65