Files
gobar/internal/collectors/cpu.go
2026-02-27 21:20:08 -07:00

46 lines
780 B
Go

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
}