diff options
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.scala | 20 |
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 |