diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2015-10-06 23:10:54 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2015-10-06 23:10:54 +0200 |
commit | 91859be4df789c64ae30ef879b9c6c83503b99c2 (patch) | |
tree | b0c264b716cf66f3c973431035387a9250ac64fb | |
parent | 74bf1915685b2034736e469e5b628ef9c51ff8ef (diff) | |
download | Kamon-91859be4df789c64ae30ef879b9c6c83503b99c2.tar.gz Kamon-91859be4df789c64ae30ef879b9c6c83503b99c2.tar.bz2 Kamon-91859be4df789c64ae30ef879b9c6c83503b99c2.zip |
+ system-metrics: add open file descriptors metrics.
-rw-r--r-- | kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarMetricsUpdater.scala | 3 | ||||
-rw-r--r-- | kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala | 20 |
2 files changed, 22 insertions, 1 deletions
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 69bc00ec..c0da6dc1 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 @@ -37,7 +37,8 @@ class SigarMetricsUpdater(refreshInterval: FiniteDuration) extends Actor { LoadAverageMetrics.register(sigar, metricsExtension, logger), MemoryMetrics.register(sigar, metricsExtension, logger), NetworkMetrics.register(sigar, metricsExtension, logger), - ProcessCpuMetrics.register(sigar, metricsExtension, logger)) + ProcessCpuMetrics.register(sigar, metricsExtension, logger), + ULimitMetrics.register(sigar, metricsExtension, logger)) val refreshSchedule = context.system.scheduler.schedule(refreshInterval, refreshInterval, self, UpdateSigarMetrics)(context.dispatcher) diff --git a/kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala new file mode 100644 index 00000000..314c8450 --- /dev/null +++ b/kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala @@ -0,0 +1,20 @@ +package kamon.system.sigar + +import akka.event.LoggingAdapter +import kamon.metric.GenericEntityRecorder +import kamon.metric.instrument.InstrumentFactory +import org.hyperic.sigar.Sigar + +class ULimitMetrics(sigar: Sigar, instrumentFactory: InstrumentFactory, logger: LoggingAdapter) extends GenericEntityRecorder(instrumentFactory) with SigarMetric { + val pid = sigar.getPid + val openFiles = histogram("open-files") + + def update(): Unit = { + openFiles.record(sigar.getProcFd(pid).getTotal) + } +} + +object ULimitMetrics extends SigarMetricRecorderCompanion("ulimit") { + def apply(sigar: Sigar, instrumentFactory: InstrumentFactory, logger: LoggingAdapter): ULimitMetrics = + new ULimitMetrics(sigar, instrumentFactory, logger) +}
\ No newline at end of file |