aboutsummaryrefslogtreecommitdiff
path: root/kamon-playground
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2016-03-14 21:59:02 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2016-03-14 21:59:02 +0100
commit3566482d061248ff01882fa9647ae2d65677d5ed (patch)
tree60746d0545a5c72fbf7ded521b9f463244e96417 /kamon-playground
parent8b20cf6440e032750e574d8a6da13084541c1500 (diff)
downloadKamon-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.conf5
-rw-r--r--kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala29
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)
}
}