aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kamon-core/src/main/scala/akka/instrumentation/ActorMessagePassingTracing.scala9
1 files changed, 7 insertions, 2 deletions
diff --git a/kamon-core/src/main/scala/akka/instrumentation/ActorMessagePassingTracing.scala b/kamon-core/src/main/scala/akka/instrumentation/ActorMessagePassingTracing.scala
index 85a47ee3..87ad4f92 100644
--- a/kamon-core/src/main/scala/akka/instrumentation/ActorMessagePassingTracing.scala
+++ b/kamon-core/src/main/scala/akka/instrumentation/ActorMessagePassingTracing.scala
@@ -59,7 +59,10 @@ class BehaviourInvokeTracing {
am ⇒
am.processingTime.record(System.nanoTime() - timestampBeforeProcessing)
am.timeInMailbox.record(timestampBeforeProcessing - contextAndTimestamp.captureNanoTime)
- am.mailboxSize.record(cellWithMetrics.queueSize.decrementAndGet())
+
+ val currentMailboxSize = cellWithMetrics.queueSize.decrementAndGet()
+ if(currentMailboxSize >= 0)
+ am.mailboxSize.record(currentMailboxSize)
}
}
}
@@ -72,7 +75,9 @@ class BehaviourInvokeTracing {
val cellWithMetrics = cell.asInstanceOf[ActorCellMetrics]
cellWithMetrics.actorMetricsRecorder.map {
am ⇒
- am.mailboxSize.record(cellWithMetrics.queueSize.incrementAndGet())
+ val currentMailboxSize = cellWithMetrics.queueSize.incrementAndGet()
+ if(currentMailboxSize >= 0)
+ am.mailboxSize.record(currentMailboxSize)
}
}