mirror of
https://github.com/shirou/gopsutil.git
synced 2025-04-26 13:48:59 +08:00
rename parseFoo to mustParseFoo because these funcs are just a util func.
Such funcs should be panic if error occured, but not implemented yet.
This commit is contained in:
parent
15ddbe009f
commit
b1d963d5b0
@ -58,19 +58,19 @@ func byteToString(orig []byte) string {
|
||||
}
|
||||
|
||||
// Parse to int32 without error
|
||||
func parseInt32(val string) int32 {
|
||||
func mustParseInt32(val string) int32 {
|
||||
vv, _ := strconv.ParseInt(val, 10, 32)
|
||||
return int32(vv)
|
||||
}
|
||||
|
||||
// Parse to uint64 without error
|
||||
func parseUint64(val string) uint64 {
|
||||
func mustParseUint64(val string) uint64 {
|
||||
vv, _ := strconv.ParseInt(val, 10, 64)
|
||||
return uint64(vv)
|
||||
}
|
||||
|
||||
// Parse to Float64 without error
|
||||
func parseFloat64(val string) float64 {
|
||||
func mustParseFloat64(val string) float64 {
|
||||
vv, _ := strconv.ParseFloat(val, 64)
|
||||
return vv
|
||||
}
|
||||
|
@ -62,12 +62,12 @@ func CPUInfo() ([]CPUInfoStat, error) {
|
||||
for _, line := range lines {
|
||||
if matches := regexp.MustCompile(`CPU:\s+(.+) \(([\d.]+).+\)`).FindStringSubmatch(line); matches != nil {
|
||||
c.ModelName = matches[1]
|
||||
c.Mhz = parseFloat64(matches[2])
|
||||
c.Mhz = mustParseFloat64(matches[2])
|
||||
} else if matches := regexp.MustCompile(`Origin = "(.+)" Id = (.+) Family = (.+) Model = (.+) Stepping = (.+)`).FindStringSubmatch(line); matches != nil {
|
||||
c.VendorID = matches[1]
|
||||
c.Family = matches[3]
|
||||
c.Model = matches[4]
|
||||
c.Stepping = parseInt32(matches[5])
|
||||
c.Stepping = mustParseInt32(matches[5])
|
||||
} else if matches := regexp.MustCompile(`Features=.+<(.+)>`).FindStringSubmatch(line); matches != nil {
|
||||
for _, v := range strings.Split(matches[1], ",") {
|
||||
c.Flags = append(c.Flags, strings.ToLower(v))
|
||||
@ -78,7 +78,7 @@ func CPUInfo() ([]CPUInfoStat, error) {
|
||||
}
|
||||
} else if matches := regexp.MustCompile(`Logical CPUs per core: (\d+)`).FindStringSubmatch(line); matches != nil {
|
||||
// FIXME: no this line?
|
||||
c.Cores = parseInt32(matches[1])
|
||||
c.Cores = mustParseInt32(matches[1])
|
||||
}
|
||||
|
||||
}
|
||||
|
10
cpu_linux.go
10
cpu_linux.go
@ -46,7 +46,7 @@ func CPUInfo() ([]CPUInfoStat, error) {
|
||||
switch key {
|
||||
case "processor":
|
||||
c = CPUInfoStat{}
|
||||
c.CPU = parseInt32(value)
|
||||
c.CPU = mustParseInt32(value)
|
||||
case "vendor_id":
|
||||
c.VendorID = value
|
||||
case "cpu family":
|
||||
@ -56,17 +56,17 @@ func CPUInfo() ([]CPUInfoStat, error) {
|
||||
case "model name":
|
||||
c.ModelName = value
|
||||
case "stepping":
|
||||
c.Stepping = parseInt32(value)
|
||||
c.Stepping = mustParseInt32(value)
|
||||
case "cpu MHz":
|
||||
c.Mhz = parseFloat64(value)
|
||||
c.Mhz = mustParseFloat64(value)
|
||||
case "cache size":
|
||||
c.CacheSize = parseInt32(strings.Replace(value, " KB", "", 1))
|
||||
c.CacheSize = mustParseInt32(strings.Replace(value, " KB", "", 1))
|
||||
case "physical id":
|
||||
c.PhysicalID = value
|
||||
case "core id":
|
||||
c.CoreID = value
|
||||
case "cpu cores":
|
||||
c.Cores = parseInt32(value)
|
||||
c.Cores = mustParseInt32(value)
|
||||
case "flags":
|
||||
c.Flags = strings.Split(value, ",")
|
||||
}
|
||||
|
@ -69,12 +69,12 @@ func DiskIOCounters() (map[string]DiskIOCountersStat, error) {
|
||||
for _, line := range lines {
|
||||
fields := strings.Fields(line)
|
||||
name := fields[2]
|
||||
reads := parseUint64(fields[3])
|
||||
rbytes := parseUint64(fields[5])
|
||||
rtime := parseUint64(fields[6])
|
||||
writes := parseUint64(fields[7])
|
||||
wbytes := parseUint64(fields[9])
|
||||
wtime := parseUint64(fields[10])
|
||||
reads := mustParseUint64(fields[3])
|
||||
rbytes := mustParseUint64(fields[5])
|
||||
rtime := mustParseUint64(fields[6])
|
||||
writes := mustParseUint64(fields[7])
|
||||
wbytes := mustParseUint64(fields[9])
|
||||
wtime := mustParseUint64(fields[10])
|
||||
if stringContains(partitions, name) {
|
||||
d := DiskIOCountersStat{
|
||||
Name: name,
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
func VirtualMemory() (*VirtualMemoryStat, error) {
|
||||
|
||||
pageSize, _ := doSysctrl("vm.stats.vm.v_page_size")
|
||||
p := parseUint64(pageSize[0])
|
||||
p := mustParseUint64(pageSize[0])
|
||||
|
||||
pageCount, _ := doSysctrl("vm.stats.vm.v_page_count")
|
||||
free, _ := doSysctrl("vm.stats.vm.v_free_count")
|
||||
@ -21,13 +21,13 @@ func VirtualMemory() (*VirtualMemoryStat, error) {
|
||||
wired, _ := doSysctrl("vm.stats.vm.v_wire_count")
|
||||
|
||||
ret := &VirtualMemoryStat{
|
||||
Total: parseUint64(pageCount[0]) * p,
|
||||
Free: parseUint64(free[0]) * p,
|
||||
Active: parseUint64(active[0]) * p,
|
||||
Inactive: parseUint64(inactive[0]) * p,
|
||||
Cached: parseUint64(cache[0]) * p,
|
||||
Buffers: parseUint64(buffer[0]),
|
||||
Wired: parseUint64(wired[0]) * p,
|
||||
Total: mustParseUint64(pageCount[0]) * p,
|
||||
Free: mustParseUint64(free[0]) * p,
|
||||
Active: mustParseUint64(active[0]) * p,
|
||||
Inactive: mustParseUint64(inactive[0]) * p,
|
||||
Cached: mustParseUint64(cache[0]) * p,
|
||||
Buffers: mustParseUint64(buffer[0]),
|
||||
Wired: mustParseUint64(wired[0]) * p,
|
||||
}
|
||||
|
||||
// TODO: platform independent (worked freebsd?)
|
||||
@ -57,10 +57,10 @@ func SwapMemory() (*SwapMemoryStat, error) {
|
||||
u := strings.Replace(values[4], "%", "", 1)
|
||||
|
||||
ret = &SwapMemoryStat{
|
||||
Total: parseUint64(values[1]),
|
||||
Used: parseUint64(values[2]),
|
||||
Free: parseUint64(values[3]),
|
||||
UsedPercent: parseFloat64(u),
|
||||
Total: mustParseUint64(values[1]),
|
||||
Used: mustParseUint64(values[2]),
|
||||
Free: mustParseUint64(values[3]),
|
||||
UsedPercent: mustParseFloat64(u),
|
||||
}
|
||||
}
|
||||
|
||||
|
14
net_linux.go
14
net_linux.go
@ -24,13 +24,13 @@ func NetIOCounters(pernic bool) ([]NetIOCountersStat, error) {
|
||||
}
|
||||
nic := NetIOCountersStat{
|
||||
Name: strings.Trim(fields[0], ":"),
|
||||
BytesRecv: parseUint64(fields[1]),
|
||||
Errin: parseUint64(fields[2]),
|
||||
Dropin: parseUint64(fields[3]),
|
||||
BytesSent: parseUint64(fields[9]),
|
||||
PacketsSent: parseUint64(fields[10]),
|
||||
Errout: parseUint64(fields[11]),
|
||||
Dropout: parseUint64(fields[12]),
|
||||
BytesRecv: mustParseUint64(fields[1]),
|
||||
Errin: mustParseUint64(fields[2]),
|
||||
Dropin: mustParseUint64(fields[3]),
|
||||
BytesSent: mustParseUint64(fields[9]),
|
||||
PacketsSent: mustParseUint64(fields[10]),
|
||||
Errout: mustParseUint64(fields[11]),
|
||||
Dropout: mustParseUint64(fields[12]),
|
||||
}
|
||||
ret = append(ret, nic)
|
||||
}
|
||||
|
@ -234,25 +234,25 @@ func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error) {
|
||||
v := strings.Trim(field[1], " kB") // remove last "kB"
|
||||
switch field[0] {
|
||||
case "Size":
|
||||
m.Size = parseUint64(v)
|
||||
m.Size = mustParseUint64(v)
|
||||
case "Rss":
|
||||
m.Rss = parseUint64(v)
|
||||
m.Rss = mustParseUint64(v)
|
||||
case "Pss":
|
||||
m.Pss = parseUint64(v)
|
||||
m.Pss = mustParseUint64(v)
|
||||
case "Shared_Clean":
|
||||
m.SharedClean = parseUint64(v)
|
||||
m.SharedClean = mustParseUint64(v)
|
||||
case "Shared_Dirty":
|
||||
m.SharedDirty = parseUint64(v)
|
||||
m.SharedDirty = mustParseUint64(v)
|
||||
case "Private_Clean":
|
||||
m.PrivateClean = parseUint64(v)
|
||||
m.PrivateClean = mustParseUint64(v)
|
||||
case "Private_Dirty":
|
||||
m.PrivateDirty = parseUint64(v)
|
||||
m.PrivateDirty = mustParseUint64(v)
|
||||
case "Referenced":
|
||||
m.Referenced = parseUint64(v)
|
||||
m.Referenced = mustParseUint64(v)
|
||||
case "Anonymous":
|
||||
m.Anonymous = parseUint64(v)
|
||||
m.Anonymous = mustParseUint64(v)
|
||||
case "Swap":
|
||||
m.Swap = parseUint64(v)
|
||||
m.Swap = mustParseUint64(v)
|
||||
}
|
||||
}
|
||||
return m
|
||||
@ -301,7 +301,7 @@ func (p *Process) fillFromfd() (int32, []*OpenFilesStat, error) {
|
||||
}
|
||||
o := &OpenFilesStat{
|
||||
Path: filepath,
|
||||
Fd: parseUint64(fd),
|
||||
Fd: mustParseUint64(fd),
|
||||
}
|
||||
openfiles = append(openfiles, o)
|
||||
}
|
||||
@ -368,13 +368,13 @@ func (p *Process) fillFromIO() (*IOCountersStat, error) {
|
||||
}
|
||||
switch field[0] {
|
||||
case "rchar":
|
||||
ret.ReadCount = parseInt32(strings.Trim(field[1], " \t"))
|
||||
ret.ReadCount = mustParseInt32(strings.Trim(field[1], " \t"))
|
||||
case "wchar":
|
||||
ret.WriteCount = parseInt32(strings.Trim(field[1], " \t"))
|
||||
ret.WriteCount = mustParseInt32(strings.Trim(field[1], " \t"))
|
||||
case "read_bytes":
|
||||
ret.ReadBytes = parseInt32(strings.Trim(field[1], " \t"))
|
||||
ret.ReadBytes = mustParseInt32(strings.Trim(field[1], " \t"))
|
||||
case "write_bytes":
|
||||
ret.WriteBytes = parseInt32(strings.Trim(field[1], " \t"))
|
||||
ret.WriteBytes = mustParseInt32(strings.Trim(field[1], " \t"))
|
||||
}
|
||||
}
|
||||
|
||||
@ -391,8 +391,8 @@ func (p *Process) fillFromStatm() (*MemoryInfoStat, *MemoryInfoExStat, error) {
|
||||
}
|
||||
fields := strings.Split(string(contents), " ")
|
||||
|
||||
rss := parseUint64(fields[0]) * PAGESIZE
|
||||
vms := parseUint64(fields[1]) * PAGESIZE
|
||||
rss := mustParseUint64(fields[0]) * PAGESIZE
|
||||
vms := mustParseUint64(fields[1]) * PAGESIZE
|
||||
memInfo := &MemoryInfoStat{
|
||||
RSS: rss,
|
||||
VMS: vms,
|
||||
@ -400,10 +400,10 @@ func (p *Process) fillFromStatm() (*MemoryInfoStat, *MemoryInfoExStat, error) {
|
||||
memInfoEx := &MemoryInfoExStat{
|
||||
RSS: rss,
|
||||
VMS: vms,
|
||||
Shared: parseUint64(fields[2]) * PAGESIZE,
|
||||
Text: parseUint64(fields[3]) * PAGESIZE,
|
||||
Lib: parseUint64(fields[4]) * PAGESIZE,
|
||||
Dirty: parseUint64(fields[5]) * PAGESIZE,
|
||||
Shared: mustParseUint64(fields[2]) * PAGESIZE,
|
||||
Text: mustParseUint64(fields[3]) * PAGESIZE,
|
||||
Lib: mustParseUint64(fields[4]) * PAGESIZE,
|
||||
Dirty: mustParseUint64(fields[5]) * PAGESIZE,
|
||||
}
|
||||
|
||||
return memInfo, memInfoEx, nil
|
||||
@ -443,18 +443,18 @@ func (p *Process) fillFromStatus() (string, string, []int32, []int32, int32, *Nu
|
||||
// case "PPid": // filled by fillFromStat
|
||||
case "Uid":
|
||||
for _, i := range strings.Split(field[1], "\t") {
|
||||
uids = append(uids, parseInt32(i))
|
||||
uids = append(uids, mustParseInt32(i))
|
||||
}
|
||||
case "Gid":
|
||||
for _, i := range strings.Split(field[1], "\t") {
|
||||
gids = append(gids, parseInt32(i))
|
||||
gids = append(gids, mustParseInt32(i))
|
||||
}
|
||||
case "Threads":
|
||||
numThreads = parseInt32(field[1])
|
||||
numThreads = mustParseInt32(field[1])
|
||||
case "voluntary_ctxt_switches":
|
||||
vol = parseInt32(field[1])
|
||||
vol = mustParseInt32(field[1])
|
||||
case "nonvoluntary_ctxt_switches":
|
||||
unvol = parseInt32(field[1])
|
||||
unvol = mustParseInt32(field[1])
|
||||
}
|
||||
}
|
||||
|
||||
@ -477,10 +477,10 @@ func (p *Process) fillFromStat() (string, int32, *CPUTimesStat, int64, int32, er
|
||||
termmap, err := getTerminalMap()
|
||||
terminal := ""
|
||||
if err == nil {
|
||||
terminal = termmap[parseUint64(fields[6])]
|
||||
terminal = termmap[mustParseUint64(fields[6])]
|
||||
}
|
||||
|
||||
ppid := parseInt32(fields[3])
|
||||
ppid := mustParseInt32(fields[3])
|
||||
utime, _ := strconv.ParseFloat(fields[13], 64)
|
||||
stime, _ := strconv.ParseFloat(fields[14], 64)
|
||||
|
||||
@ -491,10 +491,10 @@ func (p *Process) fillFromStat() (string, int32, *CPUTimesStat, int64, int32, er
|
||||
}
|
||||
|
||||
bootTime, _ := BootTime()
|
||||
ctime := ((parseUint64(fields[21]) / uint64(CLOCK_TICKS)) + uint64(bootTime)) * 1000
|
||||
ctime := ((mustParseUint64(fields[21]) / uint64(CLOCK_TICKS)) + uint64(bootTime)) * 1000
|
||||
createTime := int64(ctime)
|
||||
|
||||
// p.Nice = parseInt32(fields[18])
|
||||
// p.Nice = mustParseInt32(fields[18])
|
||||
// use syscall instead of parse Stat file
|
||||
snice, _ := syscall.Getpriority(PRIO_PROCESS, int(pid))
|
||||
nice := int32(snice) // FIXME: is this true?
|
||||
|
Loading…
x
Reference in New Issue
Block a user