aboutsummaryrefslogtreecommitdiff
path: root/kamon-system-metrics
diff options
context:
space:
mode:
authorBoris Giftge <bgiftge@kixeye.com>2014-10-22 18:19:15 -0700
committerIvan Topolnjak <ivantopo@gmail.com>2014-10-23 18:53:21 +0200
commit349b628dc483c7ec6ba4c166e25a5965c0e7d81c (patch)
tree47ae95aa8b08ad50344d8dbb1ad65ab8a0e1bf31 /kamon-system-metrics
parent509988c356965e3c4b40bcd4036b7dc573796e1f (diff)
downloadKamon-349b628dc483c7ec6ba4c166e25a5965c0e7d81c.tar.gz
Kamon-349b628dc483c7ec6ba4c166e25a5965c0e7d81c.tar.bz2
Kamon-349b628dc483c7ec6ba4c166e25a5965c0e7d81c.zip
= core,system.metrics: fixed serialization errors when using akka.actor.serialize-messages = on
Diffstat (limited to 'kamon-system-metrics')
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/metrics/CPUMetrics.scala33
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/metrics/GCMetrics.scala23
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/metrics/HeapMetrics.scala34
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/metrics/MemoryMetrics.scala48
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala31
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/metrics/ProcessCPUMetrics.scala23
6 files changed, 106 insertions, 86 deletions
diff --git a/kamon-system-metrics/src/main/scala/kamon/metrics/CPUMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/metrics/CPUMetrics.scala
index 99288f94..ef7f225c 100644
--- a/kamon-system-metrics/src/main/scala/kamon/metrics/CPUMetrics.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/metrics/CPUMetrics.scala
@@ -58,24 +58,27 @@ object CPUMetrics extends MetricGroupCategory {
Idle -> idle)
}
- val Factory = new MetricGroupFactory {
+ val Factory = CPUMetricGroupFactory
+}
- type GroupRecorder = CPUMetricRecorder
+case object CPUMetricGroupFactory extends MetricGroupFactory {
- def create(config: Config, system: ActorSystem): GroupRecorder = {
- val settings = config.getConfig("precision.system.cpu")
+ import CPUMetrics._
- val userConfig = settings.getConfig("user")
- val systemConfig = settings.getConfig("system")
- val cpuWaitConfig = settings.getConfig("wait")
- val idleConfig = settings.getConfig("idle")
+ type GroupRecorder = CPUMetricRecorder
- new CPUMetricRecorder(
- Histogram.fromConfig(userConfig),
- Histogram.fromConfig(systemConfig),
- Histogram.fromConfig(cpuWaitConfig),
- Histogram.fromConfig(idleConfig))
- }
+ def create(config: Config, system: ActorSystem): GroupRecorder = {
+ val settings = config.getConfig("precision.system.cpu")
+
+ val userConfig = settings.getConfig("user")
+ val systemConfig = settings.getConfig("system")
+ val cpuWaitConfig = settings.getConfig("wait")
+ val idleConfig = settings.getConfig("idle")
+
+ new CPUMetricRecorder(
+ Histogram.fromConfig(userConfig),
+ Histogram.fromConfig(systemConfig),
+ Histogram.fromConfig(cpuWaitConfig),
+ Histogram.fromConfig(idleConfig))
}
}
-
diff --git a/kamon-system-metrics/src/main/scala/kamon/metrics/GCMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/metrics/GCMetrics.scala
index b5da600e..bc5fc724 100644
--- a/kamon-system-metrics/src/main/scala/kamon/metrics/GCMetrics.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/metrics/GCMetrics.scala
@@ -56,20 +56,23 @@ object GCMetrics extends MetricGroupCategory {
CollectionTime -> time)
}
- def Factory(gc: GarbageCollectorMXBean) = new MetricGroupFactory {
+ def Factory(gc: GarbageCollectorMXBean) = GCMetricGroupFactory(gc)
+}
- type GroupRecorder = GCMetricRecorder
+case class GCMetricGroupFactory(gc: GarbageCollectorMXBean) extends MetricGroupFactory {
+ import GCMetrics._
- def create(config: Config, system: ActorSystem): GroupRecorder = {
- val settings = config.getConfig("precision.jvm.gc")
+ type GroupRecorder = GCMetricRecorder
- val countConfig = settings.getConfig("count")
- val timeConfig = settings.getConfig("time")
+ def create(config: Config, system: ActorSystem): GroupRecorder = {
+ val settings = config.getConfig("precision.jvm.gc")
- new GCMetricRecorder(
- Gauge.fromConfig(countConfig, system)(() ⇒ gc.getCollectionCount),
- Gauge.fromConfig(timeConfig, system, Scale.Milli)(() ⇒ gc.getCollectionTime))
- }
+ val countConfig = settings.getConfig("count")
+ val timeConfig = settings.getConfig("time")
+
+ new GCMetricRecorder(
+ Gauge.fromConfig(countConfig, system)(() ⇒ gc.getCollectionCount),
+ Gauge.fromConfig(timeConfig, system, Scale.Milli)(() ⇒ gc.getCollectionTime))
}
}
diff --git a/kamon-system-metrics/src/main/scala/kamon/metrics/HeapMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/metrics/HeapMetrics.scala
index c51b458c..ac033fe2 100644
--- a/kamon-system-metrics/src/main/scala/kamon/metrics/HeapMetrics.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/metrics/HeapMetrics.scala
@@ -58,26 +58,30 @@ object HeapMetrics extends MetricGroupCategory {
Committed -> committed)
}
- val Factory = new MetricGroupFactory {
- import kamon.system.SystemMetricsExtension._
+ val Factory = HeapMetricGroupFactory
+}
- val memory = ManagementFactory.getMemoryMXBean
- def heap = memory.getHeapMemoryUsage
+case object HeapMetricGroupFactory extends MetricGroupFactory {
- type GroupRecorder = HeapMetricRecorder
+ import HeapMetrics._
+ import kamon.system.SystemMetricsExtension._
- def create(config: Config, system: ActorSystem): GroupRecorder = {
- val settings = config.getConfig("precision.jvm.heap")
+ def heap = ManagementFactory.getMemoryMXBean.getHeapMemoryUsage
- val usedHeapConfig = settings.getConfig("used")
- val maxHeapConfig = settings.getConfig("max")
- val committedHeapConfig = settings.getConfig("committed")
+ type GroupRecorder = HeapMetricRecorder
- new HeapMetricRecorder(
- Gauge.fromConfig(usedHeapConfig, system, Scale.Mega)(() ⇒ toMB(heap.getUsed)),
- Gauge.fromConfig(maxHeapConfig, system, Scale.Mega)(() ⇒ toMB(heap.getMax)),
- Gauge.fromConfig(committedHeapConfig, system, Scale.Mega)(() ⇒ toMB(heap.getCommitted)))
- }
+ def create(config: Config, system: ActorSystem): GroupRecorder = {
+ val settings = config.getConfig("precision.jvm.heap")
+
+ val usedHeapConfig = settings.getConfig("used")
+ val maxHeapConfig = settings.getConfig("max")
+ val committedHeapConfig = settings.getConfig("committed")
+
+ new HeapMetricRecorder(
+ Gauge.fromConfig(usedHeapConfig, system, Scale.Mega)(() ⇒ toMB(heap.getUsed)),
+ Gauge.fromConfig(maxHeapConfig, system, Scale.Mega)(() ⇒ toMB(heap.getMax)),
+ Gauge.fromConfig(committedHeapConfig, system, Scale.Mega)(() ⇒ toMB(heap.getCommitted)))
}
+
}
diff --git a/kamon-system-metrics/src/main/scala/kamon/metrics/MemoryMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/metrics/MemoryMetrics.scala
index 6f3eb6df..14051427 100644
--- a/kamon-system-metrics/src/main/scala/kamon/metrics/MemoryMetrics.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/metrics/MemoryMetrics.scala
@@ -62,27 +62,31 @@ object MemoryMetrics extends MetricGroupCategory {
SwapFree -> swapFree)
}
- val Factory = new MetricGroupFactory {
-
- type GroupRecorder = MemoryMetricRecorder
-
- def create(config: Config, system: ActorSystem): GroupRecorder = {
- val settings = config.getConfig("precision.system.memory")
-
- val usedConfig = settings.getConfig("used")
- val freeConfig = settings.getConfig("free")
- val bufferConfig = settings.getConfig("buffer")
- val cacheConfig = settings.getConfig("cache")
- val swapUsedConfig = settings.getConfig("swap-used")
- val swapFreeConfig = settings.getConfig("swap-free")
-
- new MemoryMetricRecorder(
- Histogram.fromConfig(usedConfig, Scale.Mega),
- Histogram.fromConfig(freeConfig, Scale.Mega),
- Histogram.fromConfig(swapUsedConfig, Scale.Mega),
- Histogram.fromConfig(swapFreeConfig, Scale.Mega),
- Histogram.fromConfig(bufferConfig, Scale.Mega),
- Histogram.fromConfig(cacheConfig, Scale.Mega))
- }
+ val Factory = MemoryMetricGroupFactory
+}
+
+case object MemoryMetricGroupFactory extends MetricGroupFactory {
+
+ import MemoryMetrics._
+
+ type GroupRecorder = MemoryMetricRecorder
+
+ def create(config: Config, system: ActorSystem): GroupRecorder = {
+ val settings = config.getConfig("precision.system.memory")
+
+ val usedConfig = settings.getConfig("used")
+ val freeConfig = settings.getConfig("free")
+ val bufferConfig = settings.getConfig("buffer")
+ val cacheConfig = settings.getConfig("cache")
+ val swapUsedConfig = settings.getConfig("swap-used")
+ val swapFreeConfig = settings.getConfig("swap-free")
+
+ new MemoryMetricRecorder(
+ Histogram.fromConfig(usedConfig, Scale.Mega),
+ Histogram.fromConfig(freeConfig, Scale.Mega),
+ Histogram.fromConfig(swapUsedConfig, Scale.Mega),
+ Histogram.fromConfig(swapFreeConfig, Scale.Mega),
+ Histogram.fromConfig(bufferConfig, Scale.Mega),
+ Histogram.fromConfig(cacheConfig, Scale.Mega))
}
} \ No newline at end of file
diff --git a/kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala
index 831a06e3..f348bb0c 100644
--- a/kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala
@@ -58,23 +58,26 @@ object NetworkMetrics extends MetricGroupCategory {
TxErrors -> txErrors)
}
- val Factory = new MetricGroupFactory {
+ val Factory = NetworkMetricGroupFactory
+}
- type GroupRecorder = NetworkMetricRecorder
+case object NetworkMetricGroupFactory extends MetricGroupFactory {
+ import NetworkMetrics._
- def create(config: Config, system: ActorSystem): GroupRecorder = {
- val settings = config.getConfig("precision.system.network")
+ type GroupRecorder = NetworkMetricRecorder
- val rxBytesConfig = settings.getConfig("rx-bytes")
- val txBytesConfig = settings.getConfig("tx-bytes")
- val rxErrorsConfig = settings.getConfig("rx-errors")
- val txErrorsConfig = settings.getConfig("tx-errors")
+ def create(config: Config, system: ActorSystem): GroupRecorder = {
+ val settings = config.getConfig("precision.system.network")
- new NetworkMetricRecorder(
- Histogram.fromConfig(rxBytesConfig, Scale.Kilo),
- Histogram.fromConfig(txBytesConfig, Scale.Kilo),
- Histogram.fromConfig(rxErrorsConfig),
- Histogram.fromConfig(txErrorsConfig))
- }
+ val rxBytesConfig = settings.getConfig("rx-bytes")
+ val txBytesConfig = settings.getConfig("tx-bytes")
+ val rxErrorsConfig = settings.getConfig("rx-errors")
+ val txErrorsConfig = settings.getConfig("tx-errors")
+
+ new NetworkMetricRecorder(
+ Histogram.fromConfig(rxBytesConfig, Scale.Kilo),
+ Histogram.fromConfig(txBytesConfig, Scale.Kilo),
+ Histogram.fromConfig(rxErrorsConfig),
+ Histogram.fromConfig(txErrorsConfig))
}
} \ No newline at end of file
diff --git a/kamon-system-metrics/src/main/scala/kamon/metrics/ProcessCPUMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/metrics/ProcessCPUMetrics.scala
index 21f76a12..ebd79d48 100644
--- a/kamon-system-metrics/src/main/scala/kamon/metrics/ProcessCPUMetrics.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/metrics/ProcessCPUMetrics.scala
@@ -54,20 +54,23 @@ object ProcessCPUMetrics extends MetricGroupCategory {
TotalProcessTime -> totalProcessTime)
}
- val Factory = new MetricGroupFactory {
+ val Factory = ProcessCPUMetricGroupFactory
+}
- type GroupRecorder = ProcessCPUMetricsRecorder
+case object ProcessCPUMetricGroupFactory extends MetricGroupFactory {
+ import ProcessCPUMetrics._
- def create(config: Config, system: ActorSystem): GroupRecorder = {
- val settings = config.getConfig("precision.system.process-cpu")
+ type GroupRecorder = ProcessCPUMetricsRecorder
- val cpuPercentageConfig = settings.getConfig("cpu-percentage")
- val totalProcessTimeConfig = settings.getConfig("total-process-time")
+ def create(config: Config, system: ActorSystem): GroupRecorder = {
+ val settings = config.getConfig("precision.system.process-cpu")
- new ProcessCPUMetricsRecorder(
- Histogram.fromConfig(cpuPercentageConfig),
- Histogram.fromConfig(totalProcessTimeConfig))
- }
+ val cpuPercentageConfig = settings.getConfig("cpu-percentage")
+ val totalProcessTimeConfig = settings.getConfig("total-process-time")
+
+ new ProcessCPUMetricsRecorder(
+ Histogram.fromConfig(cpuPercentageConfig),
+ Histogram.fromConfig(totalProcessTimeConfig))
}
}