in internal/remoting/heartbeat.go [123:167]
func metricsJsonStr() string {
loadAvg, err := load.Avg()
if err != nil {
logger.Warnf("Failed to get system load average:" + err.Error())
return "{}"
}
cpus, _ := strconv.Atoi(os.Getenv("SIGMA_MAX_PROCESSORS_LIMIT"))
if cpus <= 0 {
cpus = runtime.NumCPU()
}
ms, err := mem.VirtualMemory()
if err != nil {
logger.Warnf("Failed to get system mem info:" + err.Error())
return "{}"
}
metricsJson := map[string]float64{
"cpuLoad1": loadAvg.Load1,
"cpuLoad5": loadAvg.Load5,
"cpuProcessors": float64(cpus),
"heap1Usage": ms.UsedPercent / 100,
"heap1Used": float64(ms.Used) / 1024 / 1024,
"heap5Usage": ms.UsedPercent / 100,
"heapMax": float64(ms.Available+ms.Used) / 1024 / 1024,
}
diskStat, err := disk.Usage("/")
if err != nil {
fmt.Println("Failed to get system disk usage info:" + err.Error())
} else {
diskUsed := diskStat.Used / 1024 / 1024
diskFree := diskStat.Free / 1024 / 1024
diskMax := float64(diskUsed + diskFree)
metricsJson["diskUsed"] = float64(diskUsed)
metricsJson["diskMax"] = diskMax
metricsJson["diskUsage"] = float64(diskUsed) / diskMax
}
ret, err := json.Marshal(metricsJson)
if err != nil {
logger.Warnf("Get metric json failed for heartbeat, err=%s", err.Error())
return "{}"
}
return string(ret)
}