[#735] policer: Allow to provide metrics from the outside
DCO action / DCO (pull_request) Successful in 3m9s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m28s Details
Build / Build Components (1.21) (pull_request) Successful in 4m17s Details
Build / Build Components (1.20) (pull_request) Successful in 4m35s Details
Tests and linters / Lint (pull_request) Successful in 7m19s Details
Tests and linters / Tests with -race (pull_request) Failing after 9m47s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m0s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 11m19s Details
Tests and linters / Staticcheck (pull_request) Successful in 11m4s Details

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
pull/735/head
Evgenii Stratonikov 2023-10-11 15:13:28 +03:00
parent 5e229dc248
commit aca11d7474
2 changed files with 12 additions and 0 deletions

View File

@ -3,3 +3,7 @@ package policer
type MetricsRegister interface {
IncProcessedObjects()
}
type noopMetrics struct{}
func (noopMetrics) IncProcessedObjects() {}

View File

@ -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
}
}