You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.1 KiB

/*
*
@author: sre
@date: 2023/11/19 0019
@desc: todo
*
*/
package main
import "strings"
func getLoadInfo(ip, port string) (float64, float64, float64, error) {
var node_load1, node_load5, node_load15 float64
data, err := getMetrics(ip, port)
if err != nil {
return 0, 0, 0, err
}
// 解析metrics数据
lines := strings.Split(data, "\n")
for _, line := range lines {
//node_load1
if strings.HasPrefix(line, "node_load1 ") {
fields := strings.Fields(line)
if len(fields) == 2 {
node_load1, err = extractMetricValue(fields[1])
if err != nil {
return 0, 0, 0, err
}
}
}
//node_load5
if strings.HasPrefix(line, "node_load5 ") {
fields := strings.Fields(line)
if len(fields) == 2 {
node_load1, err = extractMetricValue(fields[1])
if err != nil {
return 0, 0, 0, err
}
}
}
//node_load15
if strings.HasPrefix(line, "node_load15 ") {
fields := strings.Fields(line)
if len(fields) == 2 {
node_load1, err = extractMetricValue(fields[1])
if err != nil {
return 0, 0, 0, err
}
}
}
}
return node_load1, node_load5, node_load15, nil
}