diff options
-rw-r--r-- | kamon-system-metrics/src/main/resources/reference.conf | 6 | ||||
-rw-r--r-- | kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsExtension.scala | 22 |
2 files changed, 20 insertions, 8 deletions
diff --git a/kamon-system-metrics/src/main/resources/reference.conf b/kamon-system-metrics/src/main/resources/reference.conf index 57b34195..7f5c1fc7 100644 --- a/kamon-system-metrics/src/main/resources/reference.conf +++ b/kamon-system-metrics/src/main/resources/reference.conf @@ -13,6 +13,12 @@ kamon { # might cause some Sigar metrics to behave incorrectly. sigar-metrics-refresh-interval = 1 second + #sigar is enabled by default + sigar-enabled = true + + #jmx related metrics are enabled by default + jmx-enabled = true + # Frequency with which context-switches metrics will be updated. context-switches-refresh-interval = 1 second diff --git a/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsExtension.scala b/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsExtension.scala index 94c6fefa..3f67b518 100644 --- a/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsExtension.scala +++ b/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsExtension.scala @@ -42,19 +42,25 @@ class SystemMetricsExtension(system: ExtendedActorSystem) extends Kamon.Extensio val config = system.settings.config.getConfig("kamon.system-metrics") val sigarFolder = config.getString("sigar-native-folder") val sigarRefreshInterval = config.getFiniteDuration("sigar-metrics-refresh-interval") + val sigarEnabled = config.getBoolean("sigar-enabled") + val jmxEnabled = config.getBoolean("jmx-enabled") val contextSwitchesRefreshInterval = config.getFiniteDuration("context-switches-refresh-interval") val metricsExtension = Kamon.metrics - SigarProvisioner.provision(new File(sigarFolder)) - - val supervisor = system.actorOf(SystemMetricsSupervisor.props(sigarRefreshInterval, contextSwitchesRefreshInterval), "kamon-system-metrics") + // OS Metrics collected with Sigar + if (sigarEnabled) { + SigarProvisioner.provision(new File(sigarFolder)) + system.actorOf(SystemMetricsSupervisor.props(sigarRefreshInterval, contextSwitchesRefreshInterval), "kamon-system-metrics") + } // JMX Metrics - ClassLoadingMetrics.register(metricsExtension) - GarbageCollectionMetrics.register(metricsExtension) - HeapMemoryMetrics.register(metricsExtension) - NonHeapMemoryMetrics.register(metricsExtension) - ThreadsMetrics.register(metricsExtension) + if (jmxEnabled) { + ClassLoadingMetrics.register(metricsExtension) + GarbageCollectionMetrics.register(metricsExtension) + HeapMemoryMetrics.register(metricsExtension) + NonHeapMemoryMetrics.register(metricsExtension) + ThreadsMetrics.register(metricsExtension) + } } class SystemMetricsSupervisor(sigarRefreshInterval: FiniteDuration, contextSwitchesRefreshInterval: FiniteDuration) extends Actor { |