aboutsummaryrefslogtreecommitdiff
path: root/kamon-system-metrics
diff options
context:
space:
mode:
authorDiego <diegolparra@gmail.com>2014-11-19 23:30:12 -0300
committerDiego <diegolparra@gmail.com>2014-11-19 23:30:12 -0300
commit985f26cbb28f117a9a3ada795005121d6149f5f3 (patch)
tree75befb1e4b2cbd2f3f68d335d6c3c5dfdf5043d0 /kamon-system-metrics
parent7a02ee891535e18cb48fad67127ddf544749d060 (diff)
downloadKamon-985f26cbb28f117a9a3ada795005121d6149f5f3.tar.gz
Kamon-985f26cbb28f117a9a3ada795005121d6149f5f3.tar.bz2
Kamon-985f26cbb28f117a9a3ada795005121d6149f5f3.zip
! system-metrics: decouple kamon-system-metrics from sigar through to kamon-sigar
Diffstat (limited to 'kamon-system-metrics')
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/index21
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-freebsd-6.sobin210641 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-linux.sobin246605 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-solaris.sobin251360 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-hpux-11.slbin577452 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-linux.sobin494929 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-pa-hpux-11.slbin516096 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-aix-5.sobin400925 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-linux.sobin258547 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-aix-5.sobin425077 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-linux.sobin330767 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-s390x-linux.sobin269932 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc-solaris.sobin285004 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc64-solaris.sobin261896 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal-macosx.dylibbin377668 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal64-macosx.dylibbin397440 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-5.sobin179751 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-6.sobin179379 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-linux.sobin233385 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-solaris.sobin242880 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-amd64-winnt.dllbin402432 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-x86-winnt.dllbin266240 -> 0 bytes
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsCollector.scala30
-rw-r--r--kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarLoader.scala137
24 files changed, 31 insertions, 157 deletions
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/index b/kamon-system-metrics/src/main/resources/kamon/system/sigar/index
deleted file mode 100644
index cad1f326..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/index
+++ /dev/null
@@ -1,21 +0,0 @@
-libsigar-amd64-freebsd-6.so
-libsigar-amd64-linux.so
-libsigar-amd64-solaris.so
-libsigar-ia64-hpux-11.sl
-libsigar-ia64-linux.so
-libsigar-pa-hpux-11.sl
-libsigar-ppc64-aix-5.so
-libsigar-ppc64-linux.so
-libsigar-ppc-aix-5.so
-libsigar-ppc-linux.so
-libsigar-s390x-linux.so
-libsigar-sparc64-solaris.so
-libsigar-sparc-solaris.so
-libsigar-universal64-macosx.dylib
-libsigar-universal-macosx.dylib
-libsigar-x86-freebsd-5.so
-libsigar-x86-freebsd-6.so
-libsigar-x86-linux.so
-libsigar-x86-solaris.so
-sigar-amd64-winnt.dll
-sigar-x86-winnt.dll \ No newline at end of file
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-freebsd-6.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-freebsd-6.so
deleted file mode 100644
index 3e94f0d2..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-freebsd-6.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-linux.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-linux.so
deleted file mode 100644
index 5a2e4c24..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-linux.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-solaris.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-solaris.so
deleted file mode 100644
index 6396482a..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-amd64-solaris.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-hpux-11.sl b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-hpux-11.sl
deleted file mode 100644
index d92ea4a9..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-hpux-11.sl
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-linux.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-linux.so
deleted file mode 100644
index 2bd2fc8e..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ia64-linux.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-pa-hpux-11.sl b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-pa-hpux-11.sl
deleted file mode 100644
index 0dfd8a11..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-pa-hpux-11.sl
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-aix-5.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-aix-5.so
deleted file mode 100644
index 7d4b5199..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-aix-5.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-linux.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-linux.so
deleted file mode 100644
index 4394b1b0..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc-linux.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-aix-5.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-aix-5.so
deleted file mode 100644
index 35fd8288..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-aix-5.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-linux.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-linux.so
deleted file mode 100644
index a1ba2529..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-ppc64-linux.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-s390x-linux.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-s390x-linux.so
deleted file mode 100644
index c275f4ac..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-s390x-linux.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc-solaris.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc-solaris.so
deleted file mode 100644
index aa847d2b..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc-solaris.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc64-solaris.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc64-solaris.so
deleted file mode 100644
index 6c4fe809..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-sparc64-solaris.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal-macosx.dylib b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal-macosx.dylib
deleted file mode 100644
index 27ab1071..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal-macosx.dylib
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal64-macosx.dylib b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal64-macosx.dylib
deleted file mode 100644
index 0c721fec..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-universal64-macosx.dylib
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-5.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-5.so
deleted file mode 100644
index 8c50c611..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-5.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-6.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-6.so
deleted file mode 100644
index f0800274..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-freebsd-6.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-linux.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-linux.so
deleted file mode 100644
index a0b64edd..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-linux.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-solaris.so b/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-solaris.so
deleted file mode 100644
index c6452e56..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/libsigar-x86-solaris.so
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-amd64-winnt.dll b/kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-amd64-winnt.dll
deleted file mode 100644
index 1ec8a035..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-amd64-winnt.dll
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-x86-winnt.dll b/kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-x86-winnt.dll
deleted file mode 100644
index 6afdc016..00000000
--- a/kamon-system-metrics/src/main/resources/kamon/system/sigar/sigar-x86-winnt.dll
+++ /dev/null
Binary files differ
diff --git a/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsCollector.scala b/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsCollector.scala
index f41a76d5..2fe66a43 100644
--- a/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsCollector.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/system/SystemMetricsCollector.scala
@@ -17,7 +17,7 @@ package kamon.system
import java.io.IOException
-import akka.actor.{ ActorLogging, Actor, Props }
+import akka.actor.{ Actor, ActorLogging, Props }
import kamon.Kamon
import kamon.metric.Metrics
import kamon.metrics.CPUMetrics.CPUMetricRecorder
@@ -26,7 +26,7 @@ import kamon.metrics.MemoryMetrics.MemoryMetricRecorder
import kamon.metrics.NetworkMetrics.NetworkMetricRecorder
import kamon.metrics.ProcessCPUMetrics.ProcessCPUMetricsRecorder
import kamon.metrics._
-import kamon.system.sigar.SigarHolder
+import kamon.system.sigar.SigarLoader
import org.hyperic.sigar.{ Mem, NetInterfaceStat, SigarProxy }
import scala.concurrent.duration.FiniteDuration
@@ -89,8 +89,8 @@ class SystemMetricsCollector(collectInterval: FiniteDuration) extends Actor with
mr.buffer.record(toMB(collectBuffer(mem)))
mr.cache.record(toMB(collectCache(mem)))
- def collectBuffer(mem: Mem): Long = if (mem.getUsed() != mem.getActualUsed()) mem.getActualUsed() else 0L
- def collectCache(mem: Mem): Long = if (mem.getFree() != mem.getActualFree()) mem.getActualFree() else 0L
+ def collectBuffer(mem: Mem): Long = if (mem.getUsed != mem.getActualUsed) mem.getActualUsed else 0L
+ def collectCache(mem: Mem): Long = if (mem.getFree != mem.getActualFree) mem.getActualFree else 0L
}
private def recordNetwork(nr: NetworkMetricRecorder) = {
@@ -109,7 +109,7 @@ class SystemMetricsCollector(collectInterval: FiniteDuration) extends Actor with
}
}
- private def recordContextSwitches(ctxt: ContextSwitchesMetricsRecorder) = {
+ private def recordContextSwitches(rcs: ContextSwitchesMetricsRecorder) = {
def contextSwitchesByProcess(pid: Long): (Long, Long) = {
val filename = s"/proc/$pid/status"
var voluntaryContextSwitches = 0L
@@ -125,9 +125,7 @@ class SystemMetricsCollector(collectInterval: FiniteDuration) extends Actor with
}
}
} catch {
- case ex: IOException ⇒ {
- log.error("Error trying to read [{}]", filename)
- }
+ case ex: IOException ⇒ log.error("Error trying to read [{}]", filename)
}
(voluntaryContextSwitches, nonVoluntaryContextSwitches)
}
@@ -138,22 +136,20 @@ class SystemMetricsCollector(collectInterval: FiniteDuration) extends Actor with
try {
for (line ← Source.fromFile(filename).getLines()) {
- if (line.startsWith("ctxt")) {
+ if (line.startsWith("rcs")) {
contextSwitches = line.substring(line.indexOf(" ") + 1).toLong
}
}
} catch {
- case ex: IOException ⇒ {
- log.error("Error trying to read [{}]", filename)
- }
+ case ex: IOException ⇒ log.error("Error trying to read [{}]", filename)
}
contextSwitches
}
val (perProcessVoluntary, perProcessNonVoluntary) = contextSwitchesByProcess(pid)
- ctxt.perProcessVoluntary.record(perProcessVoluntary)
- ctxt.perProcessNonVoluntary.record(perProcessNonVoluntary)
- ctxt.global.record(contextSwitches)
+ rcs.perProcessVoluntary.record(perProcessVoluntary)
+ rcs.perProcessNonVoluntary.record(perProcessNonVoluntary)
+ rcs.global.record(contextSwitches)
}
}
@@ -161,14 +157,14 @@ object SystemMetricsCollector {
case object Collect
object OsUtils {
- def isLinux: Boolean = System.getProperty("os.name").indexOf("Linux") != -1;
+ def isLinux: Boolean = System.getProperty("os.name").indexOf("Linux") != -1
}
def props(collectInterval: FiniteDuration): Props = Props[SystemMetricsCollector](new SystemMetricsCollector(collectInterval))
}
trait SigarExtensionProvider {
- lazy val sigar = SigarHolder.instance()
+ lazy val sigar = SigarLoader.instance
def pid = sigar.getPid
diff --git a/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarLoader.scala b/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarLoader.scala
index 607ebe13..1b33fd6f 100644
--- a/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarLoader.scala
+++ b/kamon-system-metrics/src/main/scala/kamon/system/sigar/SigarLoader.scala
@@ -17,134 +17,33 @@
package kamon.system.sigar
import java.io._
-import java.text.SimpleDateFormat
-import java.util
import java.util.logging.Logger
-import java.util.{ ArrayList, Date, List }
-
+import kamon.sigar.SigarAgent
import org.hyperic.sigar._
-
-import scala.annotation.tailrec
-import scala.collection.JavaConversions._
-import scala.io.Source
-
-object SigarHolder {
- private lazy val sigarProxy = SigarLoader.sigarProxy
- def instance() = sigarProxy
-}
+import scala.util.control.{ NoStackTrace, NonFatal }
object SigarLoader {
-
- val Version = "1.6.4"
- val JavaLibraryPath = "java.library.path"
- val TmpDir = "java.io.tmpdir"
- val IndexFile = "/kamon/system/sigar/index"
- val UsrPathField = "usr_paths"
-
private val log = Logger.getLogger("SigarLoader")
- def sigarProxy = init(new File(System.getProperty(TmpDir)))
-
- private[sigar] def init(baseTmp: File): SigarProxy = {
- val tmpDir = createTmpDir(baseTmp)
- for (lib ← loadIndex) copy(lib, tmpDir)
-
- attachToLibraryPath(tmpDir)
-
- try {
- val sigar = new Sigar()
- printBanner(sigar)
- sigar
- } catch {
- case t: Throwable ⇒ {
- log.severe("Failed to load sigar")
- throw new RuntimeException(t)
- }
- }
- }
-
- private[sigar] val usrPathField = {
- val usrPathField = classOf[ClassLoader].getDeclaredField(UsrPathField)
- usrPathField.setAccessible(true)
- usrPathField
- }
-
- private[sigar] def attachToLibraryPath(dir: File): Unit = {
- val dirAbsolute = dir.getAbsolutePath
- System.setProperty(JavaLibraryPath, newLibraryPath(dirAbsolute))
- var paths = usrPathField.get(null).asInstanceOf[Array[String]]
- if (paths == null) paths = new Array[String](0)
- for (path ← paths) if (path == dirAbsolute) return
- val newPaths = util.Arrays.copyOf(paths, paths.length + 1)
- newPaths(newPaths.length - 1) = dirAbsolute
- usrPathField.set(null, newPaths)
- }
-
- private[sigar] def newLibraryPath(dirAbsolutePath: String): String = {
- Option(System.getProperty(JavaLibraryPath)).fold(dirAbsolutePath)(oldValue ⇒ s"$dirAbsolutePath${File.pathSeparator}$oldValue")
- }
+ lazy val instance = init(new File(System.getProperty("java.io.tmpdir")))
- private[sigar] def copy(lib: String, tmpDir: File) {
- val target = new File(tmpDir, lib)
- if (target.exists()) return
- write(classOf[Loader].getResourceAsStream(lib), target)
- }
-
- private[sigar] def createTmpDir(baseTmp: File): File = {
- val tmpDir = new File(baseTmp, s"sigar-$Version")
- if (!tmpDir.exists()) {
- if (!tmpDir.mkdirs()) throw new RuntimeException(s"Could not create temp sigar directory: ${tmpDir.getAbsolutePath}")
- }
- if (!tmpDir.isDirectory) throw new RuntimeException(s"sigar temp directory path is not a directory: ${tmpDir.getAbsolutePath}")
- if (!tmpDir.canWrite()) throw new RuntimeException(s"sigar temp directory not writeable: ${tmpDir.getAbsolutePath}")
- tmpDir
- }
-
- private[sigar] def loadIndex(): List[String] = {
- val libs = new ArrayList[String]()
- val is = classOf[Loader].getResourceAsStream(IndexFile)
-
- for (line ← Source.fromInputStream(is).getLines()) {
- val currentLine = line.trim()
- libs add currentLine
- }
- libs
- }
-
- private[sigar] def write(input: InputStream, to: File) {
- val out = new FileOutputStream(to)
- try {
- transfer(input, out)
- } finally {
- out.close()
- }
- }
-
- private[sigar] def transfer(input: InputStream, out: OutputStream) {
- val buffer = new Array[Byte](8192)
-
- @tailrec def transfer() {
- val read = input.read(buffer)
- if (read >= 0) {
- out.write(buffer, 0, read)
- transfer()
- }
- }
- transfer()
+ private[sigar] def init(baseTmp: File): SigarProxy = try {
+ SigarAgent.provision(baseTmp)
+ val sigar = new Sigar()
+ printBanner(sigar)
+ sigar
+ } catch {
+ case NonFatal(t) ⇒ throw new UnexpectedSigarException("Failed to load sigar")
}
private[sigar] def printBanner(sigar: Sigar) = {
val os = OperatingSystem.getInstance
- def loadAverage(sigar: Sigar) = {
- try {
- val average = sigar.getLoadAverage
- (average(0), average(1), average(2))
- } catch {
- case s: org.hyperic.sigar.SigarNotImplementedException ⇒ {
- (0d, 0d, 0d)
- }
- }
+ def loadAverage(sigar: Sigar) = try {
+ val average = sigar.getLoadAverage
+ (average(0), average(1), average(2))
+ } catch {
+ case s: org.hyperic.sigar.SigarNotImplementedException ⇒ (0d, 0d, 0d)
}
def uptime(sigar: Sigar) = {
@@ -155,7 +54,7 @@ object SigarLoader {
var hours: Int = 0
if (days != 0) {
- retval += s"$days ${(if ((days > 1)) "days" else "day")}, "
+ retval += s"$days ${if (days > 1) "days" else "day"}, "
}
minutes = uptime.toInt / 60
@@ -174,7 +73,7 @@ object SigarLoader {
val uptime = sigar.getUptime
val now = System.currentTimeMillis()
- s"up ${formatUptime(uptime.getUptime())}"
+ s"up ${formatUptime(uptime.getUptime)}"
}
val message =
@@ -199,5 +98,5 @@ object SigarLoader {
""".stripMargin.format(uptime(sigar), os.getDescription, loadAverage(sigar), os.getName, os.getVersion, os.getArch)
log.info(message)
}
- class Loader private[sigar]
+ class UnexpectedSigarException(message: String) extends RuntimeException(message) with NoStackTrace
}