@@ -19,6 +19,7 @@ package io.axoniq.inspector.messaging
19
19
import io.axoniq.inspector.api.Routes
20
20
import io.axoniq.inspector.api.metrics.*
21
21
import io.axoniq.inspector.client.RSocketInspectorClient
22
+ import io.axoniq.inspector.computeIfAbsentWithRetry
22
23
import io.micrometer.core.instrument.Timer
23
24
import io.micrometer.core.instrument.simple.SimpleMeterRegistry
24
25
import org.axonframework.lifecycle.Lifecycle
@@ -123,14 +124,14 @@ class HandlerMetricsRegistry(
123
124
duration : Long ,
124
125
metrics : Map <Metric , Long >
125
126
) {
126
- val handlerStats = handlers.computeIfAbsent (handler) { _ ->
127
+ val handlerStats = handlers.computeIfAbsentWithRetry (handler) { _ ->
127
128
HandlerRegistryStatistics (createTimer(handler, " total" ))
128
129
}
129
130
handlerStats.totalTimer.record(duration, TimeUnit .NANOSECONDS )
130
131
metrics.filter { it.key.targetTypes.contains(MetricTargetType .HANDLER ) }
131
132
.forEach { (metric, value) ->
132
133
handlerStats.metrics
133
- .computeIfAbsent (metric) { createTimer(handler, metric.fullIdentifier) }
134
+ .computeIfAbsentWithRetry (metric) { createTimer(handler, metric.fullIdentifier) }
134
135
.record(value, metric.type.distributionUnit)
135
136
}
136
137
@@ -141,13 +142,13 @@ class HandlerMetricsRegistry(
141
142
142
143
if (handler.type == HandlerType .Aggregate ) {
143
144
val id = AggregateStatisticIdentifier (handler.component!! )
144
- val aggStats = aggregates.computeIfAbsent (id) { _ ->
145
+ val aggStats = aggregates.computeIfAbsentWithRetry (id) { _ ->
145
146
AggregateRegistryStatistics (createTimer(id, " total" ))
146
147
}
147
148
148
149
metrics.filter { it.key.targetTypes.contains(MetricTargetType .AGGREGATE ) }.forEach { (metric, value) ->
149
150
aggStats.metrics
150
- .computeIfAbsent (metric) { createTimer(id, metric.fullIdentifier) }
151
+ .computeIfAbsentWithRetry (metric) { createTimer(id, metric.fullIdentifier) }
151
152
.record(value, metric.type.distributionUnit)
152
153
}
153
154
aggStats.totalTimer.record(duration, TimeUnit .NANOSECONDS )
@@ -162,7 +163,7 @@ class HandlerMetricsRegistry(
162
163
fun registerMessageDispatchedDuringHandling (
163
164
dispatcher : DispatcherStatisticIdentifier ,
164
165
) {
165
- dispatches.computeIfAbsent (dispatcher) { _ ->
166
+ dispatches.computeIfAbsentWithRetry (dispatcher) { _ ->
166
167
RollingCountMeasure ()
167
168
}.increment()
168
169
}
0 commit comments