aboutsummaryrefslogtreecommitdiff
path: root/kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala')
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/system/sigar/ULimitMetrics.scala20
1 files changed, 20 insertions, 0 deletions
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