From dfef9dce52782fb4939556adb926d7ff531d72b3 Mon Sep 17 00:00:00 2001 From: Diego Date: Sun, 27 Jul 2014 19:02:23 -0300 Subject: kamon-system-metrics: add system metrics to datadog and statsd modules --- kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala') diff --git a/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala b/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala index 299b1acc..e9350fae 100644 --- a/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala +++ b/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala @@ -19,6 +19,7 @@ package kamon.statsd import akka.actor._ import kamon.Kamon import kamon.metric._ +import kamon.metrics._ import scala.concurrent.duration._ import scala.collection.JavaConverters._ import com.typesafe.config.Config @@ -69,6 +70,14 @@ class StatsDExtension(system: ExtendedActorSystem) extends Kamon.Extension { Kamon(Metrics)(system).subscribe(DispatcherMetrics, dispatcherPathPattern, statsDMetricsListener, permanently = true) } + // Subscribe to SystemMetrics + val includeSystemMetrics = statsDConfig.getBoolean("report-system-metrics") + if (includeSystemMetrics) { + List(CPUMetrics, ProcessCPUMetrics, MemoryMetrics, NetworkMetrics, GCMetrics, HeapMetrics) foreach { metric ⇒ + Kamon(Metrics)(system).subscribe(metric, "*", statsDMetricsListener, permanently = true) + } + } + def buildMetricsListener(tickInterval: Long, flushInterval: Long): ActorRef = { assert(flushInterval >= tickInterval, "StatsD flush-interval needs to be equal or greater to the tick-interval") val defaultMetricKeyGenerator = new SimpleMetricKeyGenerator(system.settings.config) -- cgit v1.2.3