Initial commit (code only without large binaries)
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
||||
|
||||
package boards
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils"
|
||||
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
timeutil "github.com/iwind/TeaGo/utils/time"
|
||||
"time"
|
||||
)
|
||||
|
||||
type ValuesAction struct {
|
||||
actionutils.ParentAction
|
||||
}
|
||||
|
||||
func (this *ValuesAction) RunPost(params struct{}) {
|
||||
resp, err := this.RPC().NodeValueRPC().SumAllNodeValueStats(this.AdminContext(), &pb.SumAllNodeValueStatsRequest{})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
|
||||
var resultBytes = resp.TotalTrafficBytesPerSecond
|
||||
|
||||
// 当天流量统计
|
||||
trafficDailyStatResp, err := this.RPC().TrafficDailyStatRPC().FindTrafficDailyStatWithDay(this.AdminContext(), &pb.FindTrafficDailyStatWithDayRequest{Day: timeutil.Format("Ymd")})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
var todayTrafficBytes int64 = 0
|
||||
var todayTrafficFormat = "0B"
|
||||
if trafficDailyStatResp.TrafficDailyStat != nil {
|
||||
todayTrafficBytes = trafficDailyStatResp.TrafficDailyStat.Bytes
|
||||
todayTrafficFormat = numberutils.FormatBytes(todayTrafficBytes)
|
||||
}
|
||||
|
||||
// 昨天同期流量
|
||||
yesterdayTrafficResp, err := this.RPC().TrafficDailyStatRPC().FindTrafficDailyStatWithDay(this.AdminContext(), &pb.FindTrafficDailyStatWithDayRequest{
|
||||
Day: timeutil.Format("Ymd", time.Now().AddDate(0, 0, -1)),
|
||||
Minute: timeutil.Format("His"),
|
||||
})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
var yesterdayPercentFormat = ""
|
||||
if yesterdayTrafficResp.TrafficDailyStat != nil {
|
||||
var yesterdayTrafficBytes = yesterdayTrafficResp.TrafficDailyStat.Bytes
|
||||
if yesterdayTrafficBytes > 0 {
|
||||
var percent = float64((todayTrafficBytes-yesterdayTrafficBytes)*100) / float64(yesterdayTrafficBytes)
|
||||
if percent > 0.01 {
|
||||
yesterdayPercentFormat = "+" + fmt.Sprintf("%.2f", percent)
|
||||
} else if percent < 0.01 {
|
||||
yesterdayPercentFormat = fmt.Sprintf("%.2f", percent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.Data["stat"] = maps.Map{
|
||||
"totalTrafficBytesPerSecond": resultBytes,
|
||||
"totalTrafficPerSecondFormat": numberutils.FormatBits(resultBytes * 8),
|
||||
"avgCPUUsage": resp.AvgCPUUsage * 100,
|
||||
"avgCPUUsageFormat": fmt.Sprintf("%.2f", resp.AvgCPUUsage*100),
|
||||
"maxCPUUsage": resp.MaxCPUUsage * 100,
|
||||
"totalCPUCores": resp.TotalCPUCores,
|
||||
"avgMemoryUsage": resp.AvgMemoryUsage * 100,
|
||||
"avgMemoryUsageFormat": fmt.Sprintf("%.2f", resp.AvgMemoryUsage*100),
|
||||
"maxMemoryUsage": resp.MaxMemoryUsage * 100,
|
||||
"totalMemoryBytes": resp.TotalMemoryBytes,
|
||||
"totalMemoryFormat": numberutils.FormatBytes(resp.TotalMemoryBytes),
|
||||
"avgLoad1min": resp.AvgLoad1Min,
|
||||
"avgLoad1minFormat": fmt.Sprintf("%.2f", resp.AvgLoad1Min),
|
||||
"maxLoad1min": resp.MaxLoad1Min,
|
||||
"avgLoad5min": resp.AvgLoad5Min,
|
||||
"avgLoad5minFormat": fmt.Sprintf("%.2f", resp.AvgLoad5Min),
|
||||
"todayTrafficFormat": todayTrafficFormat,
|
||||
"yesterdayPercentFormat": yesterdayPercentFormat,
|
||||
}
|
||||
|
||||
this.Success()
|
||||
}
|
||||
Reference in New Issue
Block a user