For tracked actors, there appears to be 2 ActorRefs created for the same systemactorOf request.
@After("actorCellCreation(cell, system, ref, parent)")
def afterCreation(cell: Cell, system: ActorSystem, ref: ActorRef, parent: ActorRef): Unit = {
cell.asInstanceOf[ActorInstrumentationAware].setActorInstrumentation(
ActorMonitor.createActorMonitor(cell, system, ref, parent))
}
@After("repointableActorRefCreation(cell, system, ref, parent)")
def afterRepointableActorRefCreation(cell: Cell, system: ActorSystem, ref: ActorRef, parent: ActorRef): Unit = {
cell.asInstanceOf[ActorInstrumentationAware].setActorInstrumentation(
ActorMonitor.createActorMonitor(cell, system, ref, parent))
}
Both of these seem to create ActorMonitors.
createRegularActorMonitor cell=CellInfo(Entity(actor-group-metrics-spec/user/tracked-actor,akka-actor,Map()),false,false,true)
java.lang.Exception: tracked-actor
at akka.kamon.instrumentation.ActorMonitor$.createRegularActorMonitor(ActorMonitor.scala:42)
at akka.kamon.instrumentation.ActorMonitor$.createActorMonitor(ActorMonitor.scala:30)
at akka.kamon.instrumentation.ActorCellInstrumentation.afterRepointableActorRefCreation(ActorInstrumentation.scala:37)
at akka.actor.UnstartedCell.<init>(RepointableActorRef.scala:195)
at akka.actor.RepointableActorRef.initialize(RepointableActorRef.scala:75)
at akka.actor.LocalActorRefProvider.actorOf(ActorRefProvider.scala:764)
at akka.actor.dungeon.Children$class.makeChild(Children.scala:273)
at akka.actor.dungeon.Children$class.attachChild(Children.scala:46)
at akka.actor.ActorCell.attachChild(ActorCell.scala:374)
at akka.actor.ActorSystemImpl.actorOf(ActorSystem.scala:729)
at kamon.akka.ActorGroupMetricsSpec$ActorGroupMetricsFixtures$class.createTestActor(ActorGroupMetricsSpec.scala:62)
at kamon.akka.ActorGroupMetricsSpec$$anonfun$1$$anonfun$apply$mcV$sp$1$$anon$1.createTestActor(ActorGroupMetricsSpec.scala:34)
at kamon.akka.ActorGroupMetricsSpec$$anonfun$1$$anonfun$apply$mcV$sp$1$$anon$1.<init>(ActorGroupMetricsSpec.scala:38)
at kamon.akka.ActorGroupMetricsSpec$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ActorGroupMetricsSpec.scala:34)
at kamon.akka.ActorGroupMetricsSpec$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ActorGroupMetricsSpec.scala:34)
at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85)
at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
at org.scalatest.Transformer.apply(Transformer.scala:22)
at org.scalatest.Transformer.apply(Transformer.scala:20)
at org.scalatest.WordSpecLike$$anon$1.apply(WordSpecLike.scala:1078)
at org.scalatest.TestSuite$class.withFixture(TestSuite.scala:196)
at kamon.testkit.BaseKamonSpec.withFixture(BaseKamonSpec.scala:28)
at org.scalatest.WordSpecLike$class.invokeWithFixture$1(WordSpecLike.scala:1075)
at org.scalatest.WordSpecLike$$anonfun$runTest$1.apply(WordSpecLike.scala:1088)
at org.scalatest.WordSpecLike$$anonfun$runTest$1.apply(WordSpecLike.scala:1088)
at org.scalatest.SuperEngine.runTestImpl(Engine.scala:289)
at org.scalatest.WordSpecLike$class.runTest(WordSpecLike.scala:1088)
at kamon.testkit.BaseKamonSpec.runTest(BaseKamonSpec.scala:28)
at org.scalatest.WordSpecLike$$anonfun$runTests$1.apply(WordSpecLike.scala:1147)
at org.scalatest.WordSpecLike$$anonfun$runTests$1.apply(WordSpecLike.scala:1147)
at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:396)
at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:384)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:384)
at org.scalatest.SuperEngine.org$scalatest$SuperEngine$$runTestsInBranch(Engine.scala:373)
at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:410)
at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:384)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:384)
at org.scalatest.SuperEngine.org$scalatest$SuperEngine$$runTestsInBranch(Engine.scala:379)
at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:461)
at org.scalatest.WordSpecLike$class.runTests(WordSpecLike.scala:1147)
at kamon.testkit.BaseKamonSpec.runTests(BaseKamonSpec.scala:28)
at org.scalatest.Suite$class.run(Suite.scala:1147)
at kamon.testkit.BaseKamonSpec.org$scalatest$WordSpecLike$$super$run(BaseKamonSpec.scala:28)
at org.scalatest.WordSpecLike$$anonfun$run$1.apply(WordSpecLike.scala:1192)
at org.scalatest.WordSpecLike$$anonfun$run$1.apply(WordSpecLike.scala:1192)
at org.scalatest.SuperEngine.runImpl(Engine.scala:521)
at org.scalatest.WordSpecLike$class.run(WordSpecLike.scala:1192)
at kamon.testkit.BaseKamonSpec.org$scalatest$BeforeAndAfterAll$$super$run(BaseKamonSpec.scala:28)
at org.scalatest.BeforeAndAfterAll$class.liftedTree1$1(BeforeAndAfterAll.scala:213)
at org.scalatest.BeforeAndAfterAll$class.run(BeforeAndAfterAll.scala:210)
at kamon.testkit.BaseKamonSpec.run(BaseKamonSpec.scala:28)
at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:45)
at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$1.apply(Runner.scala:1340)
at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$1.apply(Runner.scala:1334)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1334)
at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1011)
at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1010)
at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1500)
at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1010)
at org.scalatest.tools.Runner$.main(Runner.scala:827)
at org.scalatest.tools.Runner.main(Runner.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at scala.tools.eclipse.scalatest.launching.ScalaTestLauncher$.main(ScalaTestLauncher.scala:20)
at scala.tools.eclipse.scalatest.launching.ScalaTestLauncher.main(ScalaTestLauncher.scala)
createRegularActorMonitor cell=CellInfo(Entity(actor-group-metrics-spec/user/tracked-actor,akka-actor,Map()),false,false,true,List(tracked-group))
java.lang.Exception: tracked-actor
at akka.kamon.instrumentation.ActorMonitor$.createRegularActorMonitor(ActorMonitor.scala:42)
at akka.kamon.instrumentation.ActorMonitor$.createActorMonitor(ActorMonitor.scala:30)
at akka.kamon.instrumentation.ActorCellInstrumentation.afterCreation(ActorInstrumentation.scala:31)
at akka.actor.ActorCell.<init>(ActorCell.scala:402)
at akka.actor.RepointableActorRef.newCell(RepointableActorRef.scala:119)
at akka.actor.RepointableActorRef.point_aroundBody0(RepointableActorRef.scala:93)
at akka.actor.RepointableActorRef$AjcClosure1.run(RepointableActorRef.scala:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at akka.kamon.instrumentation.TraceContextIntoRepointableActorRefMixin$$anonfun$afterRepointableActorRefCreation$1.apply(ActorSystemMessageInstrumentation.scala:77)
at kamon.trace.Tracer$.withContext(TracerModule.scala:58)
at akka.kamon.instrumentation.TraceContextIntoRepointableActorRefMixin.afterRepointableActorRefCreation(ActorSystemMessageInstrumentation.scala:76)
at akka.actor.RepointableActorRef.point(RepointableActorRef.scala:90)
at akka.actor.ActorCell.handleSupervise(ActorCell.scala:625)
at akka.actor.ActorCell.supervise(ActorCell.scala:617)
at akka.actor.ActorCell.invokeAll$1_aroundBody2(ActorCell.scala:468)
at akka.actor.ActorCell$AjcClosure3.run(ActorCell.scala:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at akka.kamon.instrumentation.ActorSystemMessageInstrumentation$$anonfun$aroundSystemMessageInvoke$1.apply(ActorSystemMessageInstrumentation.scala:34)
at kamon.trace.Tracer$.withContext(TracerModule.scala:58)
at akka.kamon.instrumentation.ActorSystemMessageInstrumentation.aroundSystemMessageInvoke(ActorSystemMessageInstrumentation.scala:34)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:1)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:483)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:282)
at akka.dispatch.Mailbox.run(Mailbox.scala:223)
at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)