From a96f6dadd5f77271672215e731b842ce785954f4 Mon Sep 17 00:00:00 2001 From: Diego Date: Wed, 28 May 2014 22:25:32 -0300 Subject: ! core: introduce system + jvm metrics --- .../scala/kamon/metrics/CpuMetricsCollector.scala | 74 +++++++++++++++++++ .../src/main/scala/kamon/metrics/JvmMetrics.scala | 71 ++++++++++++++++++ .../main/scala/kamon/metrics/SystemMetrics.scala | 71 ++++++++++++++++++ .../src/main/scala/kamon/system/System.scala | 36 +++++++++ .../scala/kamon/system/native/SigarLoader.scala | 82 +++++++++++++++++++++ .../src/main/scala/kamon/system/native/index | 22 ++++++ .../system/native/libsigar-amd64-freebsd-6.so | Bin 0 -> 210641 bytes .../kamon/system/native/libsigar-amd64-linux.so | Bin 0 -> 246605 bytes .../kamon/system/native/libsigar-amd64-solaris.so | Bin 0 -> 251360 bytes .../kamon/system/native/libsigar-ia64-hpux-11.sl | Bin 0 -> 577452 bytes .../kamon/system/native/libsigar-ia64-linux.so | Bin 0 -> 494929 bytes .../kamon/system/native/libsigar-pa-hpux-11.sl | Bin 0 -> 516096 bytes .../kamon/system/native/libsigar-ppc-aix-5.so | Bin 0 -> 400925 bytes .../kamon/system/native/libsigar-ppc-linux.so | Bin 0 -> 258547 bytes .../kamon/system/native/libsigar-ppc64-aix-5.so | Bin 0 -> 425077 bytes .../kamon/system/native/libsigar-ppc64-linux.so | Bin 0 -> 330767 bytes .../kamon/system/native/libsigar-s390x-linux.so | Bin 0 -> 269932 bytes .../kamon/system/native/libsigar-sparc-solaris.so | Bin 0 -> 285004 bytes .../system/native/libsigar-sparc64-solaris.so | Bin 0 -> 261896 bytes .../system/native/libsigar-universal-macosx.dylib | Bin 0 -> 377668 bytes .../native/libsigar-universal64-macosx.dylib | Bin 0 -> 397440 bytes .../kamon/system/native/libsigar-x86-freebsd-5.so | Bin 0 -> 179751 bytes .../kamon/system/native/libsigar-x86-freebsd-6.so | Bin 0 -> 179379 bytes .../kamon/system/native/libsigar-x86-linux.so | Bin 0 -> 233385 bytes .../kamon/system/native/libsigar-x86-solaris.so | Bin 0 -> 242880 bytes .../kamon/system/native/sigar-amd64-winnt.dll | Bin 0 -> 402432 bytes .../scala/kamon/system/native/sigar-x86-winnt.dll | Bin 0 -> 266240 bytes 27 files changed, 356 insertions(+) create mode 100644 kamon-system/src/main/scala/kamon/metrics/CpuMetricsCollector.scala create mode 100644 kamon-system/src/main/scala/kamon/metrics/JvmMetrics.scala create mode 100644 kamon-system/src/main/scala/kamon/metrics/SystemMetrics.scala create mode 100644 kamon-system/src/main/scala/kamon/system/System.scala create mode 100644 kamon-system/src/main/scala/kamon/system/native/SigarLoader.scala create mode 100644 kamon-system/src/main/scala/kamon/system/native/index create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-freebsd-6.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-linux.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-solaris.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-hpux-11.sl create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-linux.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-pa-hpux-11.sl create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-aix-5.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-linux.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-aix-5.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-linux.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-s390x-linux.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-sparc-solaris.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-sparc64-solaris.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-universal-macosx.dylib create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-universal64-macosx.dylib create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-5.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-6.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-x86-linux.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/libsigar-x86-solaris.so create mode 100644 kamon-system/src/main/scala/kamon/system/native/sigar-amd64-winnt.dll create mode 100644 kamon-system/src/main/scala/kamon/system/native/sigar-x86-winnt.dll (limited to 'kamon-system/src/main/scala/kamon') diff --git a/kamon-system/src/main/scala/kamon/metrics/CpuMetricsCollector.scala b/kamon-system/src/main/scala/kamon/metrics/CpuMetricsCollector.scala new file mode 100644 index 00000000..17f6fb08 --- /dev/null +++ b/kamon-system/src/main/scala/kamon/metrics/CpuMetricsCollector.scala @@ -0,0 +1,74 @@ +package kamon.metrics + +import kamon.system.native.SigarLoader +import org.hyperic.sigar.{NetInterfaceStat, Swap} + +trait SigarExtensionProvider { + self: MetricsCollector => + + lazy val sigar = SigarLoader.init +} + +trait MetricsCollector extends SigarExtensionProvider { + def collect: MetricsMeasurement +} + +sealed trait MetricsMeasurement +case class MemoryMetricsMeasurement(memUsage: Long, memSwapPageIn: Long, memSwapPageOut: Long) extends MetricsMeasurement +case class NetworkMetricsMeasurement(tcpCurrEstab: Long, + tcpEstabResets: Long, + netRxBytesRate: Long, + netTxBytesRate: Long, + netRxErrors: Long, + netTxErrors: Long) extends MetricsMeasurement + +case class CpuMetricsMeasurement(cpuUser: Long, cpuSys: Long, cpuCombined: Long, + loadAverage1min: Long, + loadAverage5min: Long, + loadAverage15min: Long) extends MetricsMeasurement + + + +class CpuMetricsCollector extends MetricsCollector { + val loadAverage = sigar.getLoadAverage + val cpuPerc = sigar.getCpuPerc + + + def collect(): CpuMetricsMeasurement = { + println(s"ProcCPU->${sigar.getProcCpu(sigar.getPid)}") + val loadAverage1min = loadAverage(0).toLong + val loadAverage5min = loadAverage(1).toLong + val loadAverage15min = loadAverage(2).toLong + + CpuMetricsMeasurement(cpuPerc.getUser.toLong, cpuPerc.getSys.toLong, cpuPerc.getCombined.toLong, loadAverage1min, loadAverage5min, loadAverage15min) + } +} + +class MemoryMetricsCollector extends MetricsCollector { + val swap: Swap = sigar.getSwap + + def collect(): MetricsMeasurement = MemoryMetricsMeasurement(sigar.getMem.getUsedPercent.toLong, swap.getPageIn, swap.getPageOut) +} + +class NetWorkMetricsCollector extends MetricsCollector { + val interfaces = sigar.getNetInterfaceList.toSet + val tcp = sigar.getTcp + + var netRxBytes = 0L + var netTxBytes = 0L + var netRxErrors = 0L + var netTxErrors = 0L + + def collect(): MetricsMeasurement = { + for{ + interface <- interfaces + net:NetInterfaceStat <- sigar.getNetInterfaceStat(interface) + }{ + netRxBytes += net.getRxBytes + netTxBytes += net.getTxBytes + netRxErrors += net.getRxErrors + netTxErrors += net.getTxErrors + } + NetworkMetricsMeasurement(tcp.getCurrEstab, tcp.getEstabResets,netRxBytes, netTxBytes, netRxErrors, netTxErrors) + } +} \ No newline at end of file diff --git a/kamon-system/src/main/scala/kamon/metrics/JvmMetrics.scala b/kamon-system/src/main/scala/kamon/metrics/JvmMetrics.scala new file mode 100644 index 00000000..fb3bfeb8 --- /dev/null +++ b/kamon-system/src/main/scala/kamon/metrics/JvmMetrics.scala @@ -0,0 +1,71 @@ +/* + * ========================================================================================= + * Copyright © 2013-2014 the kamon project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + +package kamon.metrics + +import com.typesafe.config.Config +import org.HdrHistogram.HdrRecorder + +case class JvmMetrics(name: String) extends MetricGroupIdentity { + val category = JvmMetrics +} + +object JvmMetrics extends MetricGroupCategory { + val name = "system" + + case object MaximumPoolSize extends MetricIdentity { val name, tag = "maximum-pool-size" } + case object RunningThreadCount extends MetricIdentity { val name, tag = "running-thread-count" } + case object QueueTaskCount extends MetricIdentity { val name, tag = "queued-task-count" } + case object PoolSize extends MetricIdentity { val name, tag = "pool-size" } + + case class JvmMetricRecorder(maximumPoolSize: MetricRecorder, runningThreadCount: MetricRecorder, queueTaskCount: MetricRecorder, poolSize: MetricRecorder) + extends MetricGroupRecorder { + + def collect: MetricGroupSnapshot = { + JvmMetricSnapshot(maximumPoolSize.collect(), runningThreadCount.collect(), queueTaskCount.collect(), poolSize.collect()) + } + } + + case class JvmMetricSnapshot(maximumPoolSize: MetricSnapshotLike, runningThreadCount: MetricSnapshotLike, queueTaskCount: MetricSnapshotLike, poolSize: MetricSnapshotLike) + extends MetricGroupSnapshot { + + val metrics: Map[MetricIdentity, MetricSnapshotLike] = Map( + (MaximumPoolSize -> maximumPoolSize), + (RunningThreadCount -> runningThreadCount), + (QueueTaskCount -> queueTaskCount), + (PoolSize -> poolSize)) + } + + val Factory = new MetricGroupFactory { + type GroupRecorder = JvmMetricRecorder + + def create(config: Config): JvmMetricRecorder = { + val settings = config.getConfig("precision.jvm") + + val threadCountConfig = extractPrecisionConfig(settings.getConfig("maximum-pool-size")) + val RunningThreadCountConfig = extractPrecisionConfig(settings.getConfig("running-thread-count")) + val QueueTaskCountConfig = extractPrecisionConfig(settings.getConfig("queued-task-count")) + val PoolSizeConfig = extractPrecisionConfig(settings.getConfig("pool-size")) + + new JvmMetricRecorder( + HdrRecorder(threadCountConfig.highestTrackableValue, threadCountConfig.significantValueDigits, Scale.Unit), + HdrRecorder(RunningThreadCountConfig.highestTrackableValue, RunningThreadCountConfig.significantValueDigits, Scale.Unit), + HdrRecorder(QueueTaskCountConfig.highestTrackableValue, QueueTaskCountConfig.significantValueDigits, Scale.Unit), + HdrRecorder(PoolSizeConfig.highestTrackableValue, PoolSizeConfig.significantValueDigits, Scale.Unit)) + } + } +} + diff --git a/kamon-system/src/main/scala/kamon/metrics/SystemMetrics.scala b/kamon-system/src/main/scala/kamon/metrics/SystemMetrics.scala new file mode 100644 index 00000000..9bcd8917 --- /dev/null +++ b/kamon-system/src/main/scala/kamon/metrics/SystemMetrics.scala @@ -0,0 +1,71 @@ +/* + * ========================================================================================= + * Copyright © 2013-2014 the kamon project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + +package kamon.metrics + +import com.typesafe.config.Config +import org.HdrHistogram.HdrRecorder + +case class SystemMetrics(name: String) extends MetricGroupIdentity { + val category = JvmMetrics +} + +object SystemMetrics extends MetricGroupCategory { + val name = "system" + + case object MaximumPoolSize extends MetricIdentity { val name, tag = "maximum-pool-size" } + case object RunningThreadCount extends MetricIdentity { val name, tag = "running-thread-count" } + case object QueueTaskCount extends MetricIdentity { val name, tag = "queued-task-count" } + case object PoolSize extends MetricIdentity { val name, tag = "pool-size" } + + case class SystemMetricRecorder(maximumPoolSize: MetricRecorder, runningThreadCount: MetricRecorder, queueTaskCount: MetricRecorder, poolSize: MetricRecorder) + extends MetricGroupRecorder { + + def collect: MetricGroupSnapshot = { + SystemMetricSnapshot(maximumPoolSize.collect(), runningThreadCount.collect(), queueTaskCount.collect(), poolSize.collect()) + } + } + + case class SystemMetricSnapshot(maximumPoolSize: MetricSnapshotLike, runningThreadCount: MetricSnapshotLike, queueTaskCount: MetricSnapshotLike, poolSize: MetricSnapshotLike) + extends MetricGroupSnapshot { + + val metrics: Map[MetricIdentity, MetricSnapshotLike] = Map( + (MaximumPoolSize -> maximumPoolSize), + (RunningThreadCount -> runningThreadCount), + (QueueTaskCount -> queueTaskCount), + (PoolSize -> poolSize)) + } + + val Factory = new MetricGroupFactory { + type GroupRecorder = SystemMetricRecorder + + def create(config: Config): SystemMetricRecorder = { + val settings = config.getConfig("precision.system") + + val threadCountConfig = extractPrecisionConfig(settings.getConfig("maximum-pool-size")) + val RunningThreadCountConfig = extractPrecisionConfig(settings.getConfig("running-thread-count")) + val QueueTaskCountConfig = extractPrecisionConfig(settings.getConfig("queued-task-count")) + val PoolSizeConfig = extractPrecisionConfig(settings.getConfig("pool-size")) + + new SystemMetricRecorder( + HdrRecorder(threadCountConfig.highestTrackableValue, threadCountConfig.significantValueDigits, Scale.Unit), + HdrRecorder(RunningThreadCountConfig.highestTrackableValue, RunningThreadCountConfig.significantValueDigits, Scale.Unit), + HdrRecorder(QueueTaskCountConfig.highestTrackableValue, QueueTaskCountConfig.significantValueDigits, Scale.Unit), + HdrRecorder(PoolSizeConfig.highestTrackableValue, PoolSizeConfig.significantValueDigits, Scale.Unit)) + } + } +} + diff --git a/kamon-system/src/main/scala/kamon/system/System.scala b/kamon-system/src/main/scala/kamon/system/System.scala new file mode 100644 index 00000000..a6c468ef --- /dev/null +++ b/kamon-system/src/main/scala/kamon/system/System.scala @@ -0,0 +1,36 @@ +/* + * ========================================================================================= + * Copyright © 2013-2014 the kamon project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + +package kamon.system + +import akka.actor.{ ExtendedActorSystem, Extension, ExtensionIdProvider, ExtensionId } +import kamon.Kamon +import akka.event.Logging + +object System extends ExtensionId[SystemExtension] with ExtensionIdProvider { + override def lookup(): ExtensionId[_ <: Extension] = System + override def createExtension(system: ExtendedActorSystem): SystemExtension = new SystemExtension(system) +} + +class SystemExtension(private val system: ExtendedActorSystem) extends Kamon.Extension { + val log = Logging(system, classOf[SystemExtension]) + log.info("Starting the Kamon(System) extension") + + private val config = system.settings.config.getConfig("kamon.system") + + val defaultDispatcher = system.dispatchers.lookup(config.getString("dispatcher")) +} + diff --git a/kamon-system/src/main/scala/kamon/system/native/SigarLoader.scala b/kamon-system/src/main/scala/kamon/system/native/SigarLoader.scala new file mode 100644 index 00000000..511a8ffc --- /dev/null +++ b/kamon-system/src/main/scala/kamon/system/native/SigarLoader.scala @@ -0,0 +1,82 @@ +package kamon.system.native + +import org.hyperic.sigar.Sigar +import org.hyperic.sigar.SigarProxy +import java.io._ +import scalax.io.JavaConverters._ +import scalax.io._ + +import Resource._ + +import scalax.file.Path +import java.util +import scala.collection.JavaConversions._ + +object SigarLoader { + val Version = "1.6.4" + val JavaLibraryPath = "java.library.path" + val TmpDir = "java.io.tmpdir" + val IndexFile = "/kamon/system/native/index" + val UsrPathField = "usr_paths" + + def init: SigarProxy = init(new File(System.getProperty(TmpDir))) + + private def init(baseTmp: File): SigarProxy = { + val tmpDir = createTmpDir(baseTmp) + for (lib ← loadIndex) copy(lib, tmpDir) + + attachToLibraryPath(tmpDir) + + try { + val sigar = new Sigar + sigar.getPid + sigar + } catch { + case t: Throwable ⇒ + throw new RuntimeException("Failed to load sigar", t) + } + } + + private val usrPathField = { + val usrPathField = classOf[ClassLoader].getDeclaredField(UsrPathField) + usrPathField.setAccessible(true) + usrPathField + } + + private 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 def newLibraryPath(dirAbsolutePath: String): String = { + Option(System.getProperty(JavaLibraryPath)).fold(dirAbsolutePath)(oldValue ⇒ s"$dirAbsolutePath${File.pathSeparator}$oldValue") + } + + private def copy(lib: String, tmpDir: File) { + val dest: Path = Path(new File(tmpDir, lib)) + if (dest.exists) return + val currentFile = Resource.fromInputStream(classOf[Loader].getResourceAsStream("" + lib)) + currentFile.acquireFor(current ⇒ dest.doCopyFrom(current.asInput)) + } + + private def createTmpDir(baseTmp: File): File = { + val path = Path(new File(baseTmp, s"sigar-$Version")) + path.createDirectory(failIfExists = false) + path.jfile + } + + private def loadIndex: util.List[String] = { + val libs = new util.ArrayList[String] + val input = fromInputStream(classOf[Loader].getResourceAsStream(IndexFile)) + input.lines().foreach(libs.add) + libs + } +} + +class Loader \ No newline at end of file diff --git a/kamon-system/src/main/scala/kamon/system/native/index b/kamon-system/src/main/scala/kamon/system/native/index new file mode 100644 index 00000000..ebc7f952 --- /dev/null +++ b/kamon-system/src/main/scala/kamon/system/native/index @@ -0,0 +1,22 @@ +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 + diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-freebsd-6.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-freebsd-6.so new file mode 100644 index 00000000..3e94f0d2 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-freebsd-6.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-linux.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-linux.so new file mode 100644 index 00000000..5a2e4c24 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-linux.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-solaris.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-solaris.so new file mode 100644 index 00000000..6396482a Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-amd64-solaris.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-hpux-11.sl b/kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-hpux-11.sl new file mode 100644 index 00000000..d92ea4a9 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-hpux-11.sl differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-linux.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-linux.so new file mode 100644 index 00000000..2bd2fc8e Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-ia64-linux.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-pa-hpux-11.sl b/kamon-system/src/main/scala/kamon/system/native/libsigar-pa-hpux-11.sl new file mode 100644 index 00000000..0dfd8a11 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-pa-hpux-11.sl differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-aix-5.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-aix-5.so new file mode 100644 index 00000000..7d4b5199 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-aix-5.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-linux.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-linux.so new file mode 100644 index 00000000..4394b1b0 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc-linux.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-aix-5.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-aix-5.so new file mode 100644 index 00000000..35fd8288 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-aix-5.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-linux.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-linux.so new file mode 100644 index 00000000..a1ba2529 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-ppc64-linux.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-s390x-linux.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-s390x-linux.so new file mode 100644 index 00000000..c275f4ac Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-s390x-linux.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-sparc-solaris.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-sparc-solaris.so new file mode 100644 index 00000000..aa847d2b Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-sparc-solaris.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-sparc64-solaris.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-sparc64-solaris.so new file mode 100644 index 00000000..6c4fe809 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-sparc64-solaris.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-universal-macosx.dylib b/kamon-system/src/main/scala/kamon/system/native/libsigar-universal-macosx.dylib new file mode 100644 index 00000000..27ab1071 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-universal-macosx.dylib differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-universal64-macosx.dylib b/kamon-system/src/main/scala/kamon/system/native/libsigar-universal64-macosx.dylib new file mode 100644 index 00000000..0c721fec Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-universal64-macosx.dylib differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-5.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-5.so new file mode 100644 index 00000000..8c50c611 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-5.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-6.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-6.so new file mode 100644 index 00000000..f0800274 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-freebsd-6.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-linux.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-linux.so new file mode 100644 index 00000000..a0b64edd Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-linux.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-solaris.so b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-solaris.so new file mode 100644 index 00000000..c6452e56 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/libsigar-x86-solaris.so differ diff --git a/kamon-system/src/main/scala/kamon/system/native/sigar-amd64-winnt.dll b/kamon-system/src/main/scala/kamon/system/native/sigar-amd64-winnt.dll new file mode 100644 index 00000000..1ec8a035 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/sigar-amd64-winnt.dll differ diff --git a/kamon-system/src/main/scala/kamon/system/native/sigar-x86-winnt.dll b/kamon-system/src/main/scala/kamon/system/native/sigar-x86-winnt.dll new file mode 100644 index 00000000..6afdc016 Binary files /dev/null and b/kamon-system/src/main/scala/kamon/system/native/sigar-x86-winnt.dll differ -- cgit v1.2.3