diff --git a/pkg/services/policer/metrics.go b/pkg/services/policer/metrics.go index 0b83f298..c2ad2b0b 100644 --- a/pkg/services/policer/metrics.go +++ b/pkg/services/policer/metrics.go @@ -3,3 +3,7 @@ package policer type MetricsRegister interface { IncProcessedObjects() } + +type noopMetrics struct{} + +func (noopMetrics) IncProcessedObjects() {} diff --git a/pkg/services/policer/option.go b/pkg/services/policer/option.go index 3a2fdc50..fe47555c 100644 --- a/pkg/services/policer/option.go +++ b/pkg/services/policer/option.go @@ -81,6 +81,7 @@ func defaultCfg() *cfg { rebalanceFreq: 1 * time.Second, sleepDuration: 1 * time.Second, evictDuration: 30 * time.Second, + metrics: noopMetrics{}, } } @@ -172,3 +173,10 @@ func WithPool(p *ants.Pool) Option { c.taskPool = p } } + +// WithMetrics returns option to set metrics. +func WithMetrics(m MetricsRegister) Option { + return func(c *cfg) { + c.metrics = m + } +}