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
Shirou WAKAYAMA bd438932ad Merge branch 'master' of github.com:shirou/gopsutil 11 years ago
.gitignore initial import. 11 years ago
LICENSE update README and add LICENSE file. 11 years ago
README.rst Process struct now has functions from members 11 years ago
common.go move parseInt funcs to common. 11 years ago
common_freebsd.go go fmt 11 years ago
common_windows.go change to use (modified version of ) github.com/AllenDang/w32 on windows 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 remove each metrics top struct such as CPU, all functions become flat. 11 years ago
cpu_windows.go change to use (modified version of ) github.com/AllenDang/w32 on windows 11 years ago
disk.go remove each metrics top struct such as CPU, all functions become flat. 11 years ago
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 remove each metrics top struct such as CPU, all functions become flat. 11 years ago
disk_unix.go implements disk_partitions on freebsd. 11 years ago
disk_windows.go change to use (modified version of ) github.com/AllenDang/w32 on windows 11 years ago
host.go implements users() on linux. 11 years ago
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 (modified version of ) github.com/AllenDang/w32 on windows 11 years ago
load.go remove each metrics top struct such as CPU, all functions become flat. 11 years ago
load_freebsd.go go fmt 11 years ago
load_linux.go remove each metrics top struct such as CPU, all functions become flat. 11 years ago
load_test.go remove each metrics top struct such as CPU, all functions become flat. 11 years ago
load_windows.go fix windows 11 years ago
mem.go remove each metrics top struct such as CPU, all functions become flat. 11 years ago
mem_freebsd.go syscall.SysInfo not exists in FreeBSD. use sysctl instead. 11 years ago
mem_linux.go linux file still exists. rename it. 11 years ago
mem_test.go remove each metrics top struct such as CPU, all functions become flat. 11 years ago
mem_windows.go change to use (modified version of ) github.com/AllenDang/w32 on windows 11 years ago
net.go implements net_io_counters on linux. 11 years ago
net_linux.go implements net_io_counters on linux. 11 years ago
process.go Process struct now has functions from members 11 years ago
process_freebsd.go fix return type. 11 years ago
process_freebsd_amd64.go add initial placeholder of process functions. 11 years ago
process_linux.go Process struct now has functions from members 11 years ago
process_linux_amd64.go implement Process.Memory_info on linux. 11 years ago
process_posix.go implements Process.Send_signal() and other signal functions on posix. 11 years ago
process_test.go Process struct now has functions from members 11 years ago
process_test_posix.go add signal test stub on windows. and move to signal test process_test_posix 11 years ago
process_windows.go change to use (modified version of ) github.com/AllenDang/w32 on windows 11 years ago
windows_memo.rst add windows implementation memo. 11 years ago

README.rst

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

.. image:: https://drone.io/github.com/shirou/gopsutil/status.png
        :target: https://drone.io/github.com/shirou/gopsutil

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)
  - Process class

    - Pid (linux, freebsd, windows)
    - Ppid (linux)
    - Name (linux)
    - Cmdline (linux)
    - Create_time (linux)
    - Status (linux)
    - Cwd (linux)
    - Exe (linux, freebsd)
    - Uids (linux)
    - Gids (linux)
    - Terminal (linux)
    - Nice (linux)
    - Num_fds (linux)
    - Num_threads (linux)
    - Cpu_times (linux)
    - Memory_info (linux)
    - Memory_info_ex (linux)
    - Memory_maps() (linux)
    - Open_files (linux)
    - Send_signal (linux, freebsd)
    - Suspend (linux, freebsd)
    - Resume (linux, freebsd)
    - Terminate (linux, freebsd)
    - Kill (linux, freebsd)

- not yet

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

    - username
    - ionice
    - rlimit
    - io_counters
    - num_ctx_switches
    - num_handlers
    - threads
    - cpu_percent
    - cpu_affinity
    - memory_percent
    - children
    - connections
    - is_running


- future work

  - process_iter
  - wait_procs
  - Process class

    - parent (use ppid instead)
    - as_dict
    - wait


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