mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-25 16:30:26 +08:00
优化节点列表
This commit is contained in:
@@ -6,7 +6,9 @@ import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
)
|
||||
|
||||
type NodeValueService struct {
|
||||
@@ -60,7 +62,7 @@ func (this *NodeValueService) ListNodeValues(ctx context.Context, req *pb.ListNo
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbValues := []*pb.NodeValue{}
|
||||
var pbValues = []*pb.NodeValue{}
|
||||
for _, value := range values {
|
||||
pbValues = append(pbValues, &pb.NodeValue{
|
||||
ValueJSON: value.Value,
|
||||
@@ -70,3 +72,80 @@ func (this *NodeValueService) ListNodeValues(ctx context.Context, req *pb.ListNo
|
||||
|
||||
return &pb.ListNodeValuesResponse{NodeValues: pbValues}, nil
|
||||
}
|
||||
|
||||
// SumAllNodeValueStats 读取所有节点的最新数据
|
||||
func (this *NodeValueService) SumAllNodeValueStats(ctx context.Context, req *pb.SumAllNodeValueStatsRequest) (*pb.SumAllNodeValueStatsResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
var result = &pb.SumAllNodeValueStatsResponse{}
|
||||
|
||||
// traffic
|
||||
{
|
||||
total, _, _, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemTrafficOut, "total", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.TotalTrafficBytesPerSecond = types.Int64(total) / 60
|
||||
}
|
||||
|
||||
// cpu
|
||||
{
|
||||
_, avg, max, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemCPU, "usage", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.AvgCPUUsage = types.Float32(avg)
|
||||
result.MaxCPUUsage = types.Float32(max)
|
||||
}
|
||||
|
||||
{
|
||||
total, _, _, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemCPU, "cores", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.TotalCPUCores = types.Int32(total)
|
||||
}
|
||||
|
||||
// memory
|
||||
{
|
||||
_, avg, max, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemMemory, "usage", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.AvgMemoryUsage = types.Float32(avg)
|
||||
result.MaxMemoryUsage = types.Float32(max)
|
||||
}
|
||||
|
||||
{
|
||||
total, _, _, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemMemory, "total", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.TotalMemoryBytes = types.Int64(total)
|
||||
}
|
||||
|
||||
// load
|
||||
{
|
||||
_, avg, max, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemLoad, "load1m", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.AvgLoad1Min = types.Float32(avg)
|
||||
result.MaxLoad1Min = types.Float32(max)
|
||||
}
|
||||
|
||||
{
|
||||
_, avg, _, err := models.SharedNodeValueDAO.SumAllNodeValues(tx, nodeconfigs.NodeRoleNode, nodeconfigs.NodeValueItemLoad, "load5m", 1, nodeconfigs.NodeValueDurationUnitMinute)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.AvgLoad5Min = types.Float32(avg)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user