ssh_crawler/stat/loadavg.go

34 lines
485 B
Go
Raw Normal View History

2017-10-23 05:31:04 +00:00
package stat
import (
"bufio"
2017-10-23 09:08:19 +00:00
"io"
2017-10-23 05:31:04 +00:00
"strings"
)
type LoadAvg struct {
2017-10-24 07:09:17 +00:00
Min1,
Min5,
Min15 string
2017-10-23 05:31:04 +00:00
}
func (loadavg LoadAvg) Command() string {
return "cat /proc/loadavg"
}
2017-10-23 09:08:19 +00:00
func (loadavg LoadAvg) Parse(r io.Reader) (*LoadAvg, error) {
2017-10-23 05:31:04 +00:00
var (
scanner = bufio.NewScanner(r)
)
load := LoadAvg{}
for scanner.Scan() {
line := scanner.Text()
parts := strings.Fields(line)
2017-10-24 07:09:17 +00:00
load.Min1 = parts[0]
load.Min5 = parts[1]
load.Min15 = parts[2]
2017-10-23 05:31:04 +00:00
}
2017-10-23 09:08:19 +00:00
return &load, scanner.Err()
2017-10-23 05:31:04 +00:00
}