diff options
Diffstat (limited to 'kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala')
-rw-r--r-- | kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala | 28 |
1 files changed, 7 insertions, 21 deletions
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 f6230695..831a06e3 100644 --- a/kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala +++ b/kamon-system-metrics/src/main/scala/kamon/metrics/NetworkMetrics.scala @@ -18,10 +18,7 @@ package kamon.metrics import akka.actor.ActorSystem import com.typesafe.config.Config import kamon.metric._ -import kamon.metric.instrument.Gauge.CurrentValueCollector -import kamon.metric.instrument.{ Gauge, Histogram } -import kamon.system.SigarExtensionProvider -import org.hyperic.sigar.{ NetInterfaceStat, SigarProxy } +import kamon.metric.instrument.Histogram case class NetworkMetrics(name: String) extends MetricGroupIdentity { val category = NetworkMetrics @@ -35,7 +32,7 @@ object NetworkMetrics extends MetricGroupCategory { case object RxErrors extends MetricIdentity { val name = "rx-errors" } case object TxErrors extends MetricIdentity { val name = "tx-errors" } - case class NetworkMetricRecorder(rxBytes: Gauge, txBytes: Gauge, rxErrors: Gauge, txErrors: Gauge) + case class NetworkMetricRecorder(rxBytes: Histogram, txBytes: Histogram, rxErrors: Histogram, txErrors: Histogram) extends MetricGroupRecorder { def collect(context: CollectionContext): MetricGroupSnapshot = { @@ -61,9 +58,7 @@ object NetworkMetrics extends MetricGroupCategory { TxErrors -> txErrors) } - val Factory = new MetricGroupFactory with SigarExtensionProvider { - - val interfaces: Set[String] = sigar.getNetInterfaceList.toSet + val Factory = new MetricGroupFactory { type GroupRecorder = NetworkMetricRecorder @@ -76,19 +71,10 @@ object NetworkMetrics extends MetricGroupCategory { val txErrorsConfig = settings.getConfig("tx-errors") new NetworkMetricRecorder( - Gauge.fromConfig(rxBytesConfig, system, Scale.Kilo)(collect(sigar, interfaces)(net ⇒ net.getRxBytes)), - Gauge.fromConfig(txBytesConfig, system, Scale.Kilo)(collect(sigar, interfaces)(net ⇒ net.getTxBytes)), - Gauge.fromConfig(rxErrorsConfig, system)(collect(sigar, interfaces)(net ⇒ net.getRxErrors)), - Gauge.fromConfig(txErrorsConfig, system)(collect(sigar, interfaces)(net ⇒ net.getTxErrors))) - } - - private def collect(sigar: SigarProxy, interfaces: Set[String])(block: NetInterfaceStat ⇒ Long) = () ⇒ { - interfaces.foldLeft(0L) { (totalBytes, interface) ⇒ - { - val net = sigar.getNetInterfaceStat(interface) - totalBytes + block(net) - } - } + Histogram.fromConfig(rxBytesConfig, Scale.Kilo), + Histogram.fromConfig(txBytesConfig, Scale.Kilo), + Histogram.fromConfig(rxErrorsConfig), + Histogram.fromConfig(txErrorsConfig)) } } }
\ No newline at end of file |