From 4b05928f97f20ebadf86e943a992a8729c6dfdbe Mon Sep 17 00:00:00 2001 From: Diego Date: Sat, 7 Jun 2014 17:13:44 -0300 Subject: = core: remove ContinuousHdrRecorder from ActorMetrics * in the case that we get a negative number, change the number to positive in MinMaxCounter in order to avoid IndexOutOfBoundsException. --- kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala | 4 ++-- .../src/main/scala/kamon/metrics/instruments/MinMaxCounter.scala | 2 +- kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala b/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala index 44dd84b0..9e19dced 100644 --- a/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala +++ b/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala @@ -17,7 +17,7 @@ package kamon.metrics import com.typesafe.config.Config -import kamon.metrics.instruments.{ CounterRecorder, ContinuousHdrRecorder } +import kamon.metrics.instruments.CounterRecorder import org.HdrHistogram.HdrRecorder case class ActorMetrics(name: String) extends MetricGroupIdentity { @@ -62,7 +62,7 @@ object ActorMetrics extends MetricGroupCategory { new ActorMetricRecorder( HdrRecorder(processingTimeConfig.highestTrackableValue, processingTimeConfig.significantValueDigits, Scale.Nano), - ContinuousHdrRecorder(mailboxSizeConfig.highestTrackableValue, mailboxSizeConfig.significantValueDigits, Scale.Unit), + HdrRecorder(mailboxSizeConfig.highestTrackableValue, mailboxSizeConfig.significantValueDigits, Scale.Unit), HdrRecorder(timeInMailboxConfig.highestTrackableValue, timeInMailboxConfig.significantValueDigits, Scale.Nano), CounterRecorder()) } diff --git a/kamon-core/src/main/scala/kamon/metrics/instruments/MinMaxCounter.scala b/kamon-core/src/main/scala/kamon/metrics/instruments/MinMaxCounter.scala index 7f6c2487..d6b79ce3 100644 --- a/kamon-core/src/main/scala/kamon/metrics/instruments/MinMaxCounter.scala +++ b/kamon-core/src/main/scala/kamon/metrics/instruments/MinMaxCounter.scala @@ -40,7 +40,7 @@ class MinMaxCounter { } def collect(): CounterMeasurement = { - val currentValue = sum.get() + val currentValue = if (sum.get() < 0) 0 else sum.get() val result = CounterMeasurement(abs(min.maxThenReset()), max.maxThenReset(), currentValue) max.update(currentValue) min.update(-currentValue) diff --git a/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala b/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala index 7430e0f0..645ca96a 100644 --- a/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala +++ b/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala @@ -87,9 +87,9 @@ class ActorMetricsSpec extends TestKitBase with WordSpecLike with Matchers { // process the tick in which the actor is stalled. val stalledTickMetrics = expectActorMetrics("user/tracked-mailbox-size-queueing-up", metricsListener, 2 seconds) - stalledTickMetrics.mailboxSize.numberOfMeasurements should equal(31) + stalledTickMetrics.mailboxSize.numberOfMeasurements should equal(30) // only the automatic last-value recording should be taken, and includes the message being currently processed. - stalledTickMetrics.mailboxSize.measurements should contain only (Measurement(10, 31)) + stalledTickMetrics.mailboxSize.measurements should contain only (Measurement(10, 30)) stalledTickMetrics.mailboxSize.min should equal(10) stalledTickMetrics.mailboxSize.max should equal(10) stalledTickMetrics.processingTime.numberOfMeasurements should be(0L) -- cgit v1.2.3