lib/writeconcurrencylimiter: initialize concurrencyLimitCh before exporting vm_concurrent_insert_capacity and vm_concurrent_insert_current metrics

This will result in proper calculations for the the alerting rule:

 avg_over_time(vm_concurrent_insert_current[1m]) >= vm_concurrent_insert_capacity

See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3761
This commit is contained in:
Aliaksandr Valialkin 2023-02-07 10:20:41 -08:00
parent f2be447270
commit 67b01329a0
No known key found for this signature in database
GPG key ID: A72BEC6CD3D0DED1

View file

@ -126,9 +126,11 @@ var (
concurrencyLimitTimeout = metrics.NewCounter(`vm_concurrent_insert_limit_timeout_total`) concurrencyLimitTimeout = metrics.NewCounter(`vm_concurrent_insert_limit_timeout_total`)
_ = metrics.NewGauge(`vm_concurrent_insert_capacity`, func() float64 { _ = metrics.NewGauge(`vm_concurrent_insert_capacity`, func() float64 {
concurrencyLimitChOnce.Do(initConcurrencyLimitCh)
return float64(cap(concurrencyLimitCh)) return float64(cap(concurrencyLimitCh))
}) })
_ = metrics.NewGauge(`vm_concurrent_insert_current`, func() float64 { _ = metrics.NewGauge(`vm_concurrent_insert_current`, func() float64 {
concurrencyLimitChOnce.Do(initConcurrencyLimitCh)
return float64(len(concurrencyLimitCh)) return float64(len(concurrencyLimitCh))
}) })
) )