Skip to content

Commit 4be6604

Browse files
committed
bug fix
1 parent 72b5f0e commit 4be6604

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

plugins/processors/awsapplicationsignals/internal/cardinalitycontrol/metrics_limiter.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,16 @@ func (m *MetricsLimiter) Admit(metricName string, attributes, resourceAttributes
9696
}
9797
admitted := true
9898

99-
loaded, _ := m.services.LoadOrStore(serviceName, newService(serviceName, m.DropThreshold, m.RotationInterval, m.ctx, m.logger))
100-
svc := loaded.(*service)
99+
val, loaded := m.services.Load(serviceName)
100+
if !loaded {
101+
valToStore := newService(serviceName, m.DropThreshold, m.RotationInterval, m.ctx, m.logger)
102+
val, loaded = m.services.LoadOrStore(serviceName, valToStore)
103+
if loaded {
104+
valToStore.cancelFunc()
105+
m.logger.Info(fmt.Sprintf("[%s] cancel newly created service entry as an existing one is found", serviceName))
106+
}
107+
}
108+
svc := val.(*service)
101109

102110
metricData := newMetricData(serviceName, metricName, labels)
103111

0 commit comments

Comments
 (0)