From cefc5c0e6cd0c5de49aa6bb748266d575fa4d728 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Sat, 2 Aug 2014 17:36:26 -0300 Subject: = core: cleanup actor metrics recorder after the actor is stopped, closes #69 --- .../src/test/scala/kamon/metric/ActorMetricsSpec.scala | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'kamon-core/src/test/scala/kamon/metric/ActorMetricsSpec.scala') diff --git a/kamon-core/src/test/scala/kamon/metric/ActorMetricsSpec.scala b/kamon-core/src/test/scala/kamon/metric/ActorMetricsSpec.scala index a05dc344..8f5e1b9b 100644 --- a/kamon-core/src/test/scala/kamon/metric/ActorMetricsSpec.scala +++ b/kamon-core/src/test/scala/kamon/metric/ActorMetricsSpec.scala @@ -18,6 +18,7 @@ package kamon.metric import java.nio.LongBuffer import akka.instrumentation.ActorCellMetrics +import kamon.Kamon import kamon.metric.ActorMetricsTestActor._ import kamon.metric.instrument.Histogram.MutableRecord import org.scalatest.{ WordSpecLike, Matchers } @@ -38,7 +39,7 @@ class ActorMetricsSpec extends TestKitBase with WordSpecLike with Matchers with | filters = [ | { | actor { - | includes = [ "user/tracked-*", "user/measuring-*", "user/clean-after-collect" ] + | includes = [ "user/tracked-*", "user/measuring-*", "user/clean-after-collect", "user/stop" ] | excludes = [ "user/tracked-explicitly-excluded"] | } | } @@ -152,6 +153,19 @@ class ActorMetricsSpec extends TestKitBase with WordSpecLike with Matchers with snapshot.timeInMailbox.recordsIterator.next().count should be(1L) snapshot.timeInMailbox.recordsIterator.next().level should be(timings.approximateTimeInMailbox +- 10.millis.toNanos) } + + "clean up the associated recorder when the actor is stopped" in new ActorMetricsFixtures { + val trackedActor = createTestActor("stop") + actorMetricsRecorderOf(trackedActor).get // force the actor to be initialized + Kamon(Metrics).storage.get(ActorMetrics("user/stop")) should not be empty + + val deathWatcher = TestProbe() + deathWatcher.watch(trackedActor) + trackedActor ! PoisonPill + deathWatcher.expectTerminated(trackedActor) + + Kamon(Metrics).storage.get(ActorMetrics("user/stop")) shouldBe empty + } } trait ActorMetricsFixtures { -- cgit v1.2.3