package collectors import ( "bufio" "log" "os" "strconv" "strings" ) func strToFloat32(input string) (float32) { f64, err := strconv.ParseFloat(input, 32) if err != nil { log.Fatal(err) } f32 := float32(f64) return f32 } func cpuLoad() (load1, load5, load15 float32) { const filePath string = "/proc/loadavg" var firstLine string file, err := os.Open(filePath) if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) if scanner.Scan() { firstLine = scanner.Text() } if err := scanner.Err(); err != nil { log.Fatal(err) } loadAverages := strings.Fields(firstLine) load1 = strToFloat32(loadAverages[0]) load5 = strToFloat32(loadAverages[1]) load15 = strToFloat32(loadAverages[2]) return load1, load5, load15 }