aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego <diegolparra@gmail.com>2016-03-06 00:51:28 -0300
committerDiego <diegolparra@gmail.com>2016-03-06 00:51:28 -0300
commit3757b3f9036445c0befae552fec64ae9b184aee4 (patch)
treeeb1bc80936fb8d8ca91ab26a6409e7f49dc0d739
parentab45bdb179aa3de1a7e1e39b6e88dfabd9491495 (diff)
downloadKamon-3757b3f9036445c0befae552fec64ae9b184aee4.tar.gz
Kamon-3757b3f9036445c0befae552fec64ae9b184aee4.tar.bz2
Kamon-3757b3f9036445c0befae552fec64ae9b184aee4.zip
+ log-reporter: include ExecutorServiceMetrics
-rw-r--r--kamon-log-reporter/src/main/scala/kamon/logreporter/LogReporter.scala28
1 files changed, 18 insertions, 10 deletions
diff --git a/kamon-log-reporter/src/main/scala/kamon/logreporter/LogReporter.scala b/kamon-log-reporter/src/main/scala/kamon/logreporter/LogReporter.scala
index c1a23f1d..3a40bbd1 100644
--- a/kamon-log-reporter/src/main/scala/kamon/logreporter/LogReporter.scala
+++ b/kamon-log-reporter/src/main/scala/kamon/logreporter/LogReporter.scala
@@ -43,6 +43,7 @@ class LogReporterExtension(system: ExtendedActorSystem) extends Kamon.Extension
Kamon.metrics.subscribe("min-max-counter", "**", subscriber, permanently = true)
Kamon.metrics.subscribe("gauge", "**", subscriber, permanently = true)
Kamon.metrics.subscribe("system-metric", "**", subscriber, permanently = true)
+ Kamon.metrics.subscribe("executor-service", "**", subscriber, permanently = true)
}
class LogReporterSubscriber extends Actor with ActorLogging {
@@ -61,16 +62,17 @@ class LogReporterSubscriber extends Actor with ActorLogging {
val gauges = Map.newBuilder[String, Option[Histogram.Snapshot]]
tick.metrics foreach {
- case (entity, snapshot) if entity.category == "akka-actor" ⇒ logActorMetrics(entity.name, snapshot)
- case (entity, snapshot) if entity.category == "akka-router" ⇒ logRouterMetrics(entity.name, snapshot)
- case (entity, snapshot) if entity.category == "akka-dispatcher" ⇒ logDispatcherMetrics(entity, snapshot)
- case (entity, snapshot) if entity.category == "trace" ⇒ logTraceMetrics(entity.name, snapshot)
- case (entity, snapshot) if entity.category == "histogram" ⇒ histograms += (entity.name -> snapshot.histogram("histogram"))
- case (entity, snapshot) if entity.category == "counter" ⇒ counters += (entity.name -> snapshot.counter("counter"))
- case (entity, snapshot) if entity.category == "min-max-counter" ⇒ minMaxCounters += (entity.name -> snapshot.minMaxCounter("min-max-counter"))
- case (entity, snapshot) if entity.category == "gauge" ⇒ gauges += (entity.name -> snapshot.gauge("gauge"))
- case (entity, snapshot) if entity.category == "system-metric" ⇒ logSystemMetrics(entity.name, snapshot)
- case ignoreEverythingElse ⇒
+ case (entity, snapshot) if entity.category == "akka-actor" ⇒ logActorMetrics(entity.name, snapshot)
+ case (entity, snapshot) if entity.category == "akka-router" ⇒ logRouterMetrics(entity.name, snapshot)
+ case (entity, snapshot) if entity.category == "akka-dispatcher" ⇒ logDispatcherMetrics(entity, snapshot)
+ case (entity, snapshot) if entity.category == "executor-service" ⇒ logExecutorMetrics(entity, snapshot)
+ case (entity, snapshot) if entity.category == "trace" ⇒ logTraceMetrics(entity.name, snapshot)
+ case (entity, snapshot) if entity.category == "histogram" ⇒ histograms += (entity.name -> snapshot.histogram("histogram"))
+ case (entity, snapshot) if entity.category == "counter" ⇒ counters += (entity.name -> snapshot.counter("counter"))
+ case (entity, snapshot) if entity.category == "min-max-counter" ⇒ minMaxCounters += (entity.name -> snapshot.minMaxCounter("min-max-counter"))
+ case (entity, snapshot) if entity.category == "gauge" ⇒ gauges += (entity.name -> snapshot.gauge("gauge"))
+ case (entity, snapshot) if entity.category == "system-metric" ⇒ logSystemMetrics(entity.name, snapshot)
+ case ignoreEverythingElse ⇒
}
logMetrics(histograms.result(), counters.result(), minMaxCounters.result(), gauges.result())
@@ -163,6 +165,12 @@ class LogReporterSubscriber extends Actor with ActorLogging {
case ignoreOthers ⇒
}
+ def logExecutorMetrics(entity: Entity, snapshot: EntitySnapshot): Unit = entity.tags.get("executor-type") match {
+ case Some("fork-join-pool") ⇒ logForkJoinPool(entity.name, snapshot)
+ case Some("thread-pool-executor") ⇒ logThreadPoolExecutor(entity.name, snapshot)
+ case ignoreOthers ⇒
+ }
+
def logForkJoinPool(name: String, forkJoinMetrics: EntitySnapshot): Unit = {
for {
paralellism ← forkJoinMetrics.minMaxCounter("parallelism")