/gosigar

Gathers system and per process statistics

Primary LanguageGoApache License 2.0Apache-2.0

Go sigar Build Status Build status

Overview

Go sigar is a golang implementation of the sigar API. The Go version of sigar has a very similar interface, but is being written from scratch in pure go/cgo, rather than cgo bindings for libsigar.

Test drive

$ go get github.com/elastic/gosigar
$ cd $GOPATH/src/github.com/elastic/gosigar/examples/ps
$ go build
$ ./ps

Supported platforms

The features vary by operating system.

Feature Linux Darwin Windows OpenBSD FreeBSD
Cpu X X X X X
CpuList X X X X
FDUsage X X
FileSystemList X X X X X
FileSystemUsage X X X X X
HugeTLBPages X
LoadAverage X X X X
Mem X X X X X
ProcArgs X X X X
ProcEnv X X X
ProcExe X X X
ProcFDUsage X X
ProcList X X X X
ProcMem X X X X
ProcState X X X X
ProcTime X X X X
Swap X X X X
Uptime X X X X

OS Specific Notes

FreeBSD

Mount both linprocfs and procfs for compatability. Consider adding these mounts to your /etc/fstab file so they are mounted automatically at boot.

sudo mount -t procfs proc /proc
sudo mkdir -p /compat/linux/proc
sudo mount -t linprocfs /dev/null /compat/linux/proc

License

Apache 2.0