Files
mengyamonitor/mengyamonitor-backend-client/dashboard_payload.go
2026-05-16 19:03:34 +08:00

26 lines
673 B
Go

package main
import "encoding/json"
// BuildDashboardPayloadJSON builds the same JSON shape the browser expects (including latency).
// collectorToCentralMs is 采集器到监控中心 TCP 建连毫秒数,失败传 -1。
func BuildDashboardPayloadJSON(collectorToCentralMs float64) ([]byte, error) {
m, err := CollectMetrics()
if err != nil {
return nil, err
}
b, err := json.Marshal(m)
if err != nil {
return nil, err
}
var o map[string]any
if err := json.Unmarshal(b, &o); err != nil {
return nil, err
}
o["latency"] = map[string]any{
"clientToServer": collectorToCentralMs,
"external": readExternalLatencies(),
}
return json.Marshal(o)
}