Skip to content

go-sysinfo is a library for collecting system information.

License

Notifications You must be signed in to change notification settings

axrayn/go-sysinfo

 
 

Repository files navigation

go-sysinfo

Build Status Go Documentation

go-sysinfo is a library for collecting system information. This includes information about the host machine and processes running on the host.

The available features vary based on what has been implemented by the "provider" for the operating system. At runtime you check to see if additional interfaces are implemented by the returned Host or Process. For example:

process, err := sysinfo.Self()
if err != nil {
	return err
}

if handleCounter, ok := process.(types.OpenHandleCounter); ok {
	count, err := handleCounter.OpenHandleCount()
	if err != nil {
		return err
	}
	log.Printf("%d open handles", count)
}

These tables show what methods are implemented as well as the extra interfaces that are implemented.

Host Features Darwin Linux Windows
Info() x x x
Memory() x x x
CPUTimer x x x
VMStat x
NetworkCounters x
Process Features Darwin Linux Windows
Info() x x x
Memory() x x x
User() x x x
Parent() x x x
CPUTimer x x x
Environment x x
OpenHandleEnumerator x
OpenHandleCounter x
Seccomp x
Capabilities x

About

go-sysinfo is a library for collecting system information.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.6%
  • Makefile 0.4%