diff --git a/common/aggregate/persistence_health_signal_aggregator.go b/common/aggregate/persistence_health_signal_aggregator.go index b21ff056cb4..bad028614ae 100644 --- a/common/aggregate/persistence_health_signal_aggregator.go +++ b/common/aggregate/persistence_health_signal_aggregator.go @@ -164,12 +164,17 @@ func (s *PersistenceHealthSignalAggregator[_]) emitMetricsLoop() { for { select { case <-s.emitMetricsTimer.C: + s.latencyLock.RLock() for key, avg := range s.latencyAverages { s.metricsHandler.Gauge(metrics.PersistenceAvgLatencyPerShardPerNamespace.GetMetricName()).Record(avg.Average(), key.GetMetricTags()...) } + s.latencyLock.RUnlock() + + s.errorLock.RLock() for key, ratio := range s.errorRatios { s.metricsHandler.Gauge(metrics.PersistenceErrPerShardPerNamespace.GetMetricName()).Record(ratio.Average(), key.GetMetricTags()...) } + s.errorLock.RUnlock() } } }