aboutsummaryrefslogtreecommitdiff
path: root/kamon-statsd/src
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-statsd/src')
-rw-r--r--kamon-statsd/src/main/resources/reference.conf4
-rw-r--r--kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala9
2 files changed, 13 insertions, 0 deletions
diff --git a/kamon-statsd/src/main/resources/reference.conf b/kamon-statsd/src/main/resources/reference.conf
index fd6293d9..eac5eade 100644
--- a/kamon-statsd/src/main/resources/reference.conf
+++ b/kamon-statsd/src/main/resources/reference.conf
@@ -24,6 +24,10 @@ kamon {
dispatcher = [ "*" ]
}
+ # Enable system metrics
+ # In order to not get a ClassNotFoundException, we must register the kamon-sytem-metrics module
+ report-system-metrics = false
+
simple-metric-key-generator {
# Application prefix for all metrics pushed to StatsD. The default namespacing scheme for metrics follows
# this pattern:
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)