From bda62b69b530f48cba8d4a2d0eeb1b0e85953b5e Mon Sep 17 00:00:00 2001 From: Diego Date: Wed, 6 May 2015 13:01:41 -0300 Subject: = system-metrics: avoid division by zero exception and close #194 --- .../src/main/scala/kamon/system/sigar/ProcessCpuMetrics.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'kamon-system-metrics') diff --git a/kamon-system-metrics/src/main/scala/kamon/system/sigar/ProcessCpuMetrics.scala b/kamon-system-metrics/src/main/scala/kamon/system/sigar/ProcessCpuMetrics.scala index 4432e6cd..43b6ba83 100644 --- a/kamon-system-metrics/src/main/scala/kamon/system/sigar/ProcessCpuMetrics.scala +++ b/kamon-system-metrics/src/main/scala/kamon/system/sigar/ProcessCpuMetrics.scala @@ -20,6 +20,8 @@ import kamon.metric.GenericEntityRecorder import kamon.metric.instrument.InstrumentFactory import org.hyperic.sigar.{ ProcCpu, Sigar } +import scala.util.Try + /** * Process Cpu usage metrics, as reported by Sigar: * - user: Process cpu user time. @@ -51,7 +53,7 @@ class ProcessCpuMetrics(sigar: Sigar, instrumentFactory: InstrumentFactory) exte val systemDiff = currentProcCpu.getSys - lastProcCpu.getSys val timeDiff = currentProcCpu.getLastTime - lastProcCpu.getLastTime - def percentUsage(delta: Long): Long = 100 * delta / timeDiff / totalCores + def percentUsage(delta: Long): Long = Try(100 * delta / timeDiff / totalCores).getOrElse(0L) if (totalDiff == 0) { if (timeDiff > 2000) currentLoad = 0 -- cgit v1.2.3