aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2015-10-06 23:10:54 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2015-10-06 23:10:54 +0200
commit91859be4df789c64ae30ef879b9c6c83503b99c2 (patch)
treeb0c264b716cf66f3c973431035387a9250ac64fb
parent74bf1915685b2034736e469e5b628ef9c51ff8ef (diff)
downloadKamon-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.scala3
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala20
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