diff options
Diffstat (limited to 'kamon-system-metrics/src/main/scala/kamon')
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)) } } |