You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
WAKAYAMA shirou fba2063a73 cast rdev to uint64 11 years ago
.gitignore
LICENSE
README.rst update README 11 years ago
common.go go fmt 11 years ago
common_freebsd.go
common_windows.go implement Boot_time on windows. But something is wrong. the returned value is not correct. 11 years ago
cpu.go gm fmt 11 years ago
cpu_freebsd.go change uint64 to float32. 11 years ago
cpu_linux.go change uint64 to float32. 11 years ago
cpu_test.go
cpu_windows.go change uint64 to float32. 11 years ago
disk.go
disk_freebsd.go separete struct defs to architecture specific files. 11 years ago
disk_freebsd_amd64.go separete struct defs to architecture specific files. 11 years ago
disk_linux.go separete struct defs to architecture specific files. 11 years ago
disk_test.go
disk_unix.go implements disk_partitions on freebsd. 11 years ago
disk_windows.go fix windows 11 years ago
host.go
host_freebsd.go separete struct defs to architecture specific files. 11 years ago
host_freebsd_amd64.go separete struct defs to architecture specific files. 11 years ago
host_linux.go separete struct defs to architecture specific files. 11 years ago
host_linux_amd64.go separete struct defs to architecture specific files. 11 years ago
host_test.go go fmt 11 years ago
host_windows.go change to use procGetTickCount.Call() instead of syscall. 11 years ago
load.go
load_freebsd.go
load_linux.go
load_test.go
load_windows.go fix windows 11 years ago
mem.go
mem_freebsd.go
mem_linux.go
mem_test.go
mem_windows.go fix windows 11 years ago
net.go first commit of process in linux. 11 years ago
process.go posix function move to process_posix.go 11 years ago
process_freebsd.go remove Refresh func. 11 years ago
process_freebsd_amd64.go add initial placeholder of process functions. 11 years ago
process_linux.go implements Create_time of process_linux. 11 years ago
process_linux_amd64.go fix CLOCK_TICKS 11 years ago
process_posix.go cast rdev to uint64 11 years ago
process_test.go change test pid if windows 11 years ago
process_windows.go start to get windows process information 11 years ago

README.rst

gopsutil: psutil for golang
==============================

This is a port of psutil(http://pythonhosted.org/psutil/). This
challenges porting all psutil functions on some architectures.

Available archtectures
------------------------------------

- FreeBSD/amd64
- Linux/amd64
- Windows/amd64

(I do not have a darwin machine)


All works are implemented without cgo by porting c struct to golang struct.


usage
---------

::

  import (
      "github.com/shirou/gopsutil"
      "fmt"
      "encoding/json"
  )

  func main(){
      v, _ := gopsutil.Virtual_memory()

      // return value is struct
      fmt.Printf("Total: %v, Free:%v, UsedPercent:%f%%\n", v.Total, v.Free, v.UsedPercent)

      // convert to JSON
      d, _ := json.Marshal(v)
      fmt.Printf("%s\n", d)
  }

The output is below.

::

  Total: 3179569152, Free:284233728, UsedPercent:84.508194%
  {"total":3179569152,"available":492572672,"used":2895335424,"usedPercent":84.50819439828305, (snip)}


Document
----------

see http://godoc.org/github.com/shirou/gopsutil


Current Status
------------------

- done

  - cpu_times (linux, freebsd)
  - cpu_count (linux, freebsd, windows)
  - virtual_memory (linux, windows)
  - swap_memory (linux)
  - disk_partitions (freebsd, windows)
  - disk_usage (linux, freebsd, windows)
  - boot_time (linux, freebsd, windows(but little broken))
  - users (linux, freebsd)
  - pids (linux, freebsd)
  - pid_exists (linux, freebsd)

- not yet

  - cpu_percent
  - cpu_times_percent
  - disk_io_counters
  - net_io_counters
  - net_connections
  - Process class

- future work

  - process_iter
  - wait_procs



License
------------

New BSD License (same as psutil)


Related works
-----------------------

So many thanks!

- psutil: http://pythonhosted.org/psutil/
- dstat: https://github.com/dagwieers/dstat
- gosiger: https://github.com/cloudfoundry/gosigar/
- goprocinfo: https://github.com/c9s/goprocinfo
- go-ps: https://github.com/mitchellh/go-ps