| 70 | var _ registry.Limiter = (*LocalSeriesLimiter)(nil) |
| 71 | |
| 72 | func New(maxSeriesF maxSeriesFunc, tenant string, limitLogger *tempo_log.RateLimitedLogger) *LocalSeriesLimiter { |
| 73 | l := &LocalSeriesLimiter{ |
| 74 | tenant: tenant, |
| 75 | maxSeriesFunc: maxSeriesF, |
| 76 | limitLogger: limitLogger, |
| 77 | metricTotalSeriesLimited: metrics.totalSeriesLimited.WithLabelValues(tenant), |
| 78 | metricActiveSeries: metrics.activeSeries.WithLabelValues(tenant), |
| 79 | metricMaxActiveSeries: metrics.maxActiveSeries.WithLabelValues(tenant), |
| 80 | metricTotalSeriesAdded: metrics.totalSeriesAdded.WithLabelValues(tenant), |
| 81 | metricTotalSeriesRemoved: metrics.totalSeriesRemoved.WithLabelValues(tenant), |
| 82 | |
| 83 | overflowEntity: registry.OverflowEntity, |
| 84 | overflowEntityHash: registry.OverflowEntity.Hash(), |
| 85 | } |
| 86 | return l |
| 87 | } |
| 88 | |
| 89 | func (l *LocalSeriesLimiter) OnAdd(hash uint64, seriesCount uint32, lbls labels.Labels) (labels.Labels, uint64) { |
| 90 | maxSeries := l.maxSeriesFunc(l.tenant) |