package collectors import ( "io/ioutil" "strconv" "time" "strings" ) const LOADAVGFILE = `/proc/loadavg` type LoadavgCollector struct { MetricCollector } func (m *LoadavgCollector) Init() { m.name = "LoadavgCollector" m.setup() } func (m *LoadavgCollector) Read(interval time.Duration){ buffer, err := ioutil.ReadFile(string(LOADAVGFILE)) if err != nil { return } ls := strings.Split(string(buffer), ` `) loadOne, _ := strconv.ParseFloat(ls[0], 64) m.node["load_one"] = float64(loadOne) loadFive, _ := strconv.ParseFloat(ls[1], 64) m.node["load_five"] = float64(loadFive) loadFifteen, _ := strconv.ParseFloat(ls[2], 64) m.node["load_fifteen"] = float64(loadFifteen) } func (m *LoadavgCollector) Close() { return }