diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2016-03-14 21:59:02 +0100 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2016-03-14 21:59:02 +0100 |
commit | 3566482d061248ff01882fa9647ae2d65677d5ed (patch) | |
tree | 60746d0545a5c72fbf7ded521b9f463244e96417 /kamon-playground | |
parent | 8b20cf6440e032750e574d8a6da13084541c1500 (diff) | |
download | Kamon-3566482d061248ff01882fa9647ae2d65677d5ed.tar.gz Kamon-3566482d061248ff01882fa9647ae2d65677d5ed.tar.bz2 Kamon-3566482d061248ff01882fa9647ae2d65677d5ed.zip |
introduce selective instrumentation for akka actors.
Diffstat (limited to 'kamon-playground')
-rw-r--r-- | kamon-playground/src/main/resources/application.conf | 5 | ||||
-rw-r--r-- | kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala | 29 |
2 files changed, 29 insertions, 5 deletions
diff --git a/kamon-playground/src/main/resources/application.conf b/kamon-playground/src/main/resources/application.conf index 783bbecd..ae20251b 100644 --- a/kamon-playground/src/main/resources/application.conf +++ b/kamon-playground/src/main/resources/application.conf @@ -23,8 +23,9 @@ kamon { metric { filters { //trace.includes = [ "**" ] - //akka-actor.includes = [ "**" ] - //akka-dispatcher.includes = [ "**" ] + akka-actor.includes = [ "**" ] + akka-router.includes = [ "**" ] + akka-dispatcher.includes = [ "**" ] } } diff --git a/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala b/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala index 854fb073..a16d166e 100644 --- a/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala +++ b/kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala @@ -17,7 +17,7 @@ package test import akka.actor._ -import akka.routing.RoundRobinPool +import akka.routing.{ BalancingPool, RoundRobinPool } import akka.util.Timeout import kamon.Kamon import kamon.metric.SubscriptionsDispatcher.TickMetricSnapshot @@ -37,7 +37,7 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil import scala.concurrent.duration._ - //Kamon.start() + Kamon.start() implicit val system = ActorSystem("test") import test.SimpleRequestProcessor.system.dispatcher @@ -130,11 +130,34 @@ object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuil } +object RouterExample extends App { + Kamon.start() + val system = ActorSystem("system") + val router = system.actorOf(RoundRobinPool(5).props(Props[PrintWhatever]), "test-round-robin") + + Kamon.metrics.subscribe("**", "**", system.actorOf(Props[PrintAllMetrics], "printer")) + + while (true) { + router ! "Test" + Thread.sleep(5000) + } +} + +class PrintAllMetrics extends Actor { + def receive = { + case TickMetricSnapshot(from, to, metrics) ⇒ + println("================================================================================") + println(metrics.map({ + case (entity, snapshot) ⇒ entity.category.padTo(20, ' ') + " > " + entity.name + " " + entity.tags + }).toList.sorted.mkString("\n")) + } +} + class PrintWhatever extends Actor { def receive = { case TickMetricSnapshot(from, to, metrics) ⇒ println(metrics.map { case (key, value) ⇒ key.name + " => " + value.metrics.mkString(",") }.mkString("|")) - case anything ⇒ println(anything) + case anything ⇒ //println(anything) } } |