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
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
|
|
|
|
}
|