diff options
author | Diego <diegolparra@gmail.com> | 2016-03-06 00:51:28 -0300 |
---|---|---|
committer | Diego <diegolparra@gmail.com> | 2016-03-06 00:51:28 -0300 |
commit | 3757b3f9036445c0befae552fec64ae9b184aee4 (patch) | |
tree | eb1bc80936fb8d8ca91ab26a6409e7f49dc0d739 | |
parent | ab45bdb179aa3de1a7e1e39b6e88dfabd9491495 (diff) | |
download | Kamon-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.scala | 28 |
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") |