sysinfo

package
v0.0.0-...-303df0f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Int8ToString

func Int8ToString(a []int8) string

Types

type CPUAverage

type CPUAverage struct {
	UserPct    float64
	NicePct    float64
	SystemPct  float64
	IdlePct    float64
	IowaitPct  float64
	IrqPct     float64
	SoftIrqPct float64
	StealPct   float64
	GuestPct   float64
	Time       time.Time
	Seconds    float64 // how many seconds between the two samples
}

CPUAverage is an object that represents the average cpu usage over a time period. It is calculated by taking the difference between two CPUSamples (whose units are clock ticks), dividing by the number of elapsed ticks between the samples, and converting to a percent.

func GetCPUAverage

func GetCPUAverage(first CPUSample, second CPUSample) CPUAverage

GetCPUAverage returns the average cpu usage between two CPUSamples.

type CPUSample

type CPUSample struct {
	User    uint64    // time spent in user mode
	Nice    uint64    // time spent in user mode with low priority (nice)
	System  uint64    // time spent in system mode
	Idle    uint64    // time spent in the idle task
	Iowait  uint64    // time spent waiting for I/O to complete (since Linux 2.5.41)
	Irq     uint64    // time spent servicing  interrupts  (since  2.6.0-test4)
	SoftIrq uint64    // time spent servicing softirqs (since 2.6.0-test4)
	Steal   uint64    // time spent in other OSes when running in a virtualized environment
	Guest   uint64    // time spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
	Name    string    // name of the line in /proc/stat; cpu, cpu1, etc
	Time    time.Time // when the sample was taken
	Total   uint64    // total of all time fields
}

func GetCPUSample

func GetCPUSample() (samp CPUSample)

GetCPUSample takes a snapshot of kernel statistics from the /proc/stat file.

type LoadAvgSample

type LoadAvgSample struct {
	One     float64
	Five    float64
	Fifteen float64
	Time    time.Time
}

func GetLoadAvgSample

func GetLoadAvgSample() (samp LoadAvgSample)

GetLoadAvgSample takes a snapshot of load info from the /proc/loadavg file.

type MemSample

type MemSample struct {
	Buffers   uint64
	Cached    uint64
	MemTotal  uint64
	MemUsed   uint64
	MemFree   uint64
	SwapTotal uint64
	SwapUsed  uint64
	SwapFree  uint64
	Time      time.Time
}

func GetMemSample

func GetMemSample() (samp MemSample)

GetMemSample takes a snapshot of memory info from the /proc/meminfo file.

type OSRelease

type OSRelease struct {
	ID            string
	Name          string
	Version       string
	Platform      string
	Arch          string
	PrettyName    string
	KernelVersion string
	// Hostname      string
	Sysname      string
	Nodename     string
	UnameVersion string
	Machine      string
	Domainname   string
}

func OSInfo

func OSInfo() *OSRelease

func (*OSRelease) Default

func (o *OSRelease) Default()

func (*OSRelease) GetOSInfo

func (o *OSRelease) GetOSInfo() *OSRelease

type ProcCPUAverage

type ProcCPUAverage struct {
	UserPct            float64   // time spent in user mode
	SystemPct          float64   // time spent in system mode
	TotalPct           float64   // total of all time fields
	PossiblePct        float64   // total of all time fields
	CumulativeTotalPct float64   // total of all time throughout process life
	Time               time.Time // when the sample was taken
	Seconds            float64   // how many seconds between the two samples
}

func GetProcCPUAverage

func GetProcCPUAverage(first ProcCPUSample, second ProcCPUSample, procUptime float64) (avg ProcCPUAverage)

GetProcCPUAverage returns the average cpu usage of this running process

type ProcCPUSample

type ProcCPUSample struct {
	User         float64   // time spent in user mode
	System       float64   // time spent in system mode
	Time         time.Time // when the sample was taken
	Total        float64   // total of all time fields
	ProcMemUsedK int64
}

func GetProcCPUSample

func GetProcCPUSample() (samp ProcCPUSample)

GetProcCPUSample takes a snapshot of kernel statistics from the /proc/stat file.

type SimpleCPUAverage

type SimpleCPUAverage struct {
	BusyPct float64 // percent of time spent by CPU performing all non-idle tasks
	IdlePct float64 // percent of time spent by CPU in the idle task
}

SimpleCPUAverage is an object that represents the average cpu usage over a time period. It is calculated by taking the difference between two CPUSamples (whose units are clock ticks), dividing by the number of elapsed ticks between the samples, and converting to a percent. It is a simplified version of the CPUAverage in that it only accounts for time in the Idle task and all other time (Busy).

func GetSimpleCPUAverage

func GetSimpleCPUAverage(first CPUSample, second CPUSample) SimpleCPUAverage

GetSimpleCPUAverage returns an aggregated average cpu usage between two CPUSamples.

type SysInfo

type SysInfo struct {
	Load1     float64
	Load5     float64
	Load15    float64
	UpTime    int64
	Totalram  uint64
	Freeram   uint64
	Sharedram uint64
	Bufferram uint64
	Totalswap uint64
	Freeswap  uint64
	Procs     uint16
	Platform  string
	Arch      string
}

func GetSysInfo

func GetSysInfo() *SysInfo

func (*SysInfo) LoadAvgString

func (s *SysInfo) LoadAvgString() string

func (*SysInfo) Update

func (s *SysInfo) Update()

type UptimeSample

type UptimeSample struct {
	Uptime float64
	Time   time.Time
}

func GetUptime

func GetUptime() (samp UptimeSample)

GetUptime takes a snapshot of load info from the /proc/loadavg file.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL