mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-12-31 18:46:35 +08:00
服务列表带宽使用新的算法
This commit is contained in:
@@ -782,7 +782,7 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := []*pb.Server{}
|
||||
var result = []*pb.Server{}
|
||||
for _, server := range servers {
|
||||
clusterName, err := models.SharedNodeClusterDAO.FindNodeClusterName(tx, int64(server.ClusterId))
|
||||
if err != nil {
|
||||
@@ -790,9 +790,9 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
||||
}
|
||||
|
||||
// 分组信息
|
||||
pbGroups := []*pb.ServerGroup{}
|
||||
var pbGroups = []*pb.ServerGroup{}
|
||||
if models.IsNotNull(server.GroupIds) {
|
||||
groupIds := []int64{}
|
||||
var groupIds = []int64{}
|
||||
err = json.Unmarshal(server.GroupIds, &groupIds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -827,7 +827,7 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
||||
}
|
||||
|
||||
// 审核结果
|
||||
auditingResult := &pb.ServerNameAuditingResult{}
|
||||
var auditingResult = &pb.ServerNameAuditingResult{}
|
||||
if len(server.AuditingResult) > 0 {
|
||||
err = json.Unmarshal(server.AuditingResult, auditingResult)
|
||||
if err != nil {
|
||||
@@ -847,27 +847,6 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 当前统计
|
||||
dailyStat, err := models.SharedServerDailyStatDAO.SumCurrentDailyStat(tx, int64(server.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var pbDailyStat *pb.ServerDailyStat
|
||||
if dailyStat != nil {
|
||||
pbDailyStat = &pb.ServerDailyStat{
|
||||
Bytes: int64(dailyStat.Bytes),
|
||||
CachedBytes: int64(dailyStat.CachedBytes),
|
||||
AttackBytes: int64(dailyStat.AttackBytes),
|
||||
CountRequests: int64(dailyStat.CountRequests),
|
||||
CountCachedRequests: int64(dailyStat.CountCachedRequests),
|
||||
CountAttackRequests: int64(dailyStat.CountAttackRequests),
|
||||
Day: dailyStat.Day,
|
||||
Hour: dailyStat.Hour,
|
||||
TimeFrom: dailyStat.TimeFrom,
|
||||
TimeTo: dailyStat.TimeTo,
|
||||
}
|
||||
}
|
||||
|
||||
result = append(result, &pb.Server{
|
||||
Id: int64(server.Id),
|
||||
IsOn: server.IsOn,
|
||||
@@ -895,9 +874,10 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
||||
Id: int64(server.ClusterId),
|
||||
Name: clusterName,
|
||||
},
|
||||
ServerGroups: pbGroups,
|
||||
User: pbUser,
|
||||
LatestServerDailyStat: pbDailyStat,
|
||||
ServerGroups: pbGroups,
|
||||
User: pbUser,
|
||||
BandwidthTime: server.BandwidthTime,
|
||||
BandwidthBytes: int64(server.BandwidthBytes),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -29,19 +29,36 @@ func init() {
|
||||
goman.New(func() {
|
||||
for range ticker.C {
|
||||
func() {
|
||||
var tx *dbs.Tx
|
||||
|
||||
serverBandwidthStatsLocker.Lock()
|
||||
var m = serverBandwidthStatsMap
|
||||
serverBandwidthStatsMap = map[string]*pb.ServerBandwidthStat{}
|
||||
serverBandwidthStatsLocker.Unlock()
|
||||
|
||||
tx, err := models.SharedServerBandwidthStatDAO.Instance.Begin()
|
||||
if err != nil {
|
||||
remotelogs.Error("ServerBandwidthStatService", "begin transaction failed: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
defer func() {
|
||||
_ = tx.Commit()
|
||||
}()
|
||||
|
||||
for _, stat := range m {
|
||||
err := models.SharedServerBandwidthStatDAO.UpdateServerBandwidth(tx, stat.UserId, stat.ServerId, stat.Day, stat.TimeAt, stat.Bytes)
|
||||
if err != nil {
|
||||
remotelogs.Error("ServerBandwidthStatService", "dump bandwidth stats failed: "+err.Error())
|
||||
// 更新服务的带宽峰值
|
||||
if stat.ServerId > 0 {
|
||||
err := models.SharedServerBandwidthStatDAO.UpdateServerBandwidth(tx, stat.UserId, stat.ServerId, stat.Day, stat.TimeAt, stat.Bytes)
|
||||
if err != nil {
|
||||
remotelogs.Error("ServerBandwidthStatService", "dump bandwidth stats failed: "+err.Error())
|
||||
}
|
||||
|
||||
err = models.SharedServerDAO.UpdateServerBandwidth(tx, stat.ServerId, stat.Day+stat.TimeAt, stat.Bytes)
|
||||
if err != nil {
|
||||
remotelogs.Error("ServerBandwidthStatService", "update server bandwidth failed: "+err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
// 更新服务的带宽峰值
|
||||
if stat.UserId > 0 {
|
||||
err = models.SharedUserBandwidthStatDAO.UpdateUserBandwidth(tx, stat.UserId, stat.Day, stat.TimeAt, stat.Bytes)
|
||||
if err != nil {
|
||||
|
||||
@@ -424,10 +424,6 @@ func (this *ServerStatBoardService) ComposeServerStatBoard(ctx context.Context,
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if bytes == 0 {
|
||||
// 尝试从缓存中读取
|
||||
bytes = ServerBandwidthGetCacheBytes(req.ServerId, day, minute)
|
||||
}
|
||||
|
||||
if bytes > 0 {
|
||||
result.MinutelyPeekBandwidthBytes = bytes
|
||||
|
||||
Reference in New Issue
Block a user