diff options
5 files changed, 17 insertions, 11 deletions
diff --git a/kamon-system-metrics/src/main/scala/kamon/system/jmx/GarbageCollectionMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/system/jmx/GarbageCollectionMetrics.scala index 2e9ea954..5258a81e 100644 --- a/kamon-system-metrics/src/main/scala/kamon/system/jmx/GarbageCollectionMetrics.scala +++ b/kamon-system-metrics/src/main/scala/kamon/system/jmx/GarbageCollectionMetrics.scala @@ -45,9 +45,11 @@ object GarbageCollectionMetrics { name.replaceAll("""[^\w]""", "-").toLowerCase def register(metricsExtension: MetricsModule): Unit = { - ManagementFactory.getGarbageCollectorMXBeans.asScala.filter(_.isValid) map { gc ⇒ + ManagementFactory.getGarbageCollectorMXBeans.asScala.filter(_.isValid) foreach { gc ⇒ val gcName = sanitizeCollectorName(gc.getName) - Kamon.metrics.entity(EntityRecorderFactory("system-metric", new GarbageCollectionMetrics(gc, _)), s"$gcName-garbage-collector") + val metricName = s"$gcName-garbage-collector" + if (metricsExtension.shouldTrack(metricName, "system-metric")) + Kamon.metrics.entity(EntityRecorderFactory("system-metric", new GarbageCollectionMetrics(gc, _)), metricName) } } } diff --git a/kamon-system-metrics/src/main/scala/kamon/system/jmx/JmxSystemMetricRecorderCompanion.scala b/kamon-system-metrics/src/main/scala/kamon/system/jmx/JmxSystemMetricRecorderCompanion.scala index 2a86c13c..b5421375 100644 --- a/kamon-system-metrics/src/main/scala/kamon/system/jmx/JmxSystemMetricRecorderCompanion.scala +++ b/kamon-system-metrics/src/main/scala/kamon/system/jmx/JmxSystemMetricRecorderCompanion.scala @@ -20,8 +20,10 @@ import kamon.metric.instrument.InstrumentFactory import kamon.metric.{ MetricsModule, EntityRecorderFactory, EntityRecorder } abstract class JmxSystemMetricRecorderCompanion(metricName: String) { - def register(metricsExtension: MetricsModule): EntityRecorder = - metricsExtension.entity(EntityRecorderFactory("system-metric", apply(_)), metricName) + def register(metricsExtension: MetricsModule): Unit = { + if (metricsExtension.shouldTrack(metricName, "system-metric")) + metricsExtension.entity(EntityRecorderFactory("system-metric", apply(_)), metricName) + } def apply(instrumentFactory: InstrumentFactory): EntityRecorder -}
\ No newline at end of file +} diff --git a/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarMetricsUpdater.scala b/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarMetricsUpdater.scala index c0da6dc1..585352e4 100644 --- a/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarMetricsUpdater.scala +++ b/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarMetricsUpdater.scala @@ -38,7 +38,7 @@ class SigarMetricsUpdater(refreshInterval: FiniteDuration) extends Actor { MemoryMetrics.register(sigar, metricsExtension, logger), NetworkMetrics.register(sigar, metricsExtension, logger), ProcessCpuMetrics.register(sigar, metricsExtension, logger), - ULimitMetrics.register(sigar, metricsExtension, logger)) + ULimitMetrics.register(sigar, metricsExtension, logger)).flatten val refreshSchedule = context.system.scheduler.schedule(refreshInterval, refreshInterval, self, UpdateSigarMetrics)(context.dispatcher) @@ -83,8 +83,11 @@ object SigarSafeRunner { } abstract class SigarMetricRecorderCompanion(metricName: String) { - def register(sigar: Sigar, metricsExtension: MetricsModule, logger: LoggingAdapter = NoLogging): SigarMetric = - metricsExtension.entity(EntityRecorderFactory("system-metric", apply(sigar, _)), metricName) + def register(sigar: Sigar, metricsExtension: MetricsModule, logger: LoggingAdapter = NoLogging): Option[SigarMetric] = + if (metricsExtension.shouldTrack(metricName, "system-metric")) + Some(metricsExtension.entity(EntityRecorderFactory("system-metric", apply(sigar, _)), metricName)) + else + None def apply(sigar: Sigar, instrumentFactory: InstrumentFactory, logger: LoggingAdapter = NoLogging): SigarMetric } diff --git a/project/Settings.scala b/project/Settings.scala index 1b6c96d2..1b71710e 100644 --- a/project/Settings.scala +++ b/project/Settings.scala @@ -21,7 +21,6 @@ import com.typesafe.sbt.SbtScalariform.ScalariformKeys import Publish.{settings => publishSettings} import Release.{settings => releaseSettings} import scalariform.formatter.preferences._ -import net.virtualvoid.sbt.graph.Plugin.graphSettings object Settings { @@ -51,7 +50,7 @@ object Settings { "-language:implicitConversions", "-Yinline-warnings", "-Xlog-reflective-calls" - )) ++ publishSettings ++ releaseSettings ++ graphSettings + )) ++ publishSettings ++ releaseSettings def singleTestPerJvm(tests: Seq[TestDefinition], jvmSettings: Seq[String]): Seq[Group] = diff --git a/project/plugins.sbt b/project/plugins.sbt index 0b0fb5e7..ab52e642 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -14,4 +14,4 @@ addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "0.2.1") addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.1") -addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.4")
\ No newline at end of file +addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.1") |