Skip to content

achun2080/gopsutil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gopsutil: psutil for golang

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

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 (linux, freebsd, windows)
    • disk_usage (linux, freebsd, windows)
    • net_io_counters (linux)
    • 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, windows)
      • Name (linux)
      • Cmdline (linux)
      • Create_time (linux)
      • Status (linux)
      • Cwd (linux)
      • Exe (linux, freebsd, windows)
      • Uids (linux)
      • Gids (linux)
      • Terminal (linux)
      • Nice (linux)
      • Num_fds (linux)
      • Num_threads (linux, windows)
      • 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_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!

About

psutil for golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published