enhance: server and nodes analytics

This commit is contained in:
Jacky 2024-11-04 10:44:27 +08:00
parent 3e065f0533
commit 2142f2e1cc
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
8 changed files with 155 additions and 57 deletions

View file

@ -25,8 +25,10 @@ var (
)
func init() {
network, _ := net.IOCounters(false)
network, err := net.IOCounters(false)
if err != nil {
logger.Error(err)
}
if len(network) > 0 {
LastNetRecv = network[0].BytesRecv
LastNetSent = network[0].BytesSent

View file

@ -75,7 +75,6 @@ func InitNode(env *model.Environment) (n *Node) {
}
u, err := url.JoinPath(env.URL, "/api/node")
if err != nil {
logger.Error(err)
return
@ -98,7 +97,6 @@ func InitNode(env *model.Environment) (n *Node) {
req.Header.Set("X-Node-Secret", env.Token)
resp, err := client.Do(req)
if err != nil {
logger.Error(err)
return

View file

@ -75,7 +75,6 @@ func nodeAnalyticRecord(env *model.Environment, ctx context.Context) (err error)
mutex.Unlock()
u, err := env.GetWebSocketURL("/api/analytic/intro")
if err != nil {
return
}
@ -84,7 +83,12 @@ func nodeAnalyticRecord(env *model.Environment, ctx context.Context) (err error)
header.Set("X-Node-Secret", env.Token)
c, _, err := websocket.DefaultDialer.Dial(u, header)
dial := &websocket.Dialer{
Proxy: http.ProxyFromEnvironment,
HandshakeTimeout: 5 * time.Second,
}
c, _, err := dial.Dial(u, header)
if err != nil {
return
}

View file

@ -12,7 +12,7 @@ import (
func getTotalDiskIO() (read, write uint64) {
diskIOCounters, err := disk.IOCounters()
if err != nil {
logger.Error(err.Error())
logger.Error(err)
return
}
for _, v := range diskIOCounters {
@ -25,15 +25,18 @@ func getTotalDiskIO() (read, write uint64) {
func recordCpu(now time.Time) {
cpuTimesBefore, err := cpu.Times(false)
if err != nil {
logger.Error(err.Error())
logger.Error(err)
return
}
time.Sleep(1000 * time.Millisecond)
cpuTimesAfter, err := cpu.Times(false)
if err != nil {
logger.Error(err.Error())
logger.Error(err)
return
}
threadNum := runtime.GOMAXPROCS(0)
cpuUserUsage := (cpuTimesAfter[0].User - cpuTimesBefore[0].User) / (float64(1000*threadNum) / 1000)
@ -66,9 +69,8 @@ func recordCpu(now time.Time) {
func recordNetwork(now time.Time) {
network, err := net.IOCounters(false)
if err != nil {
logger.Error(err.Error())
logger.Error(err)
return
}