mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	节点看板数据中增加当月、昨日、今日流量
This commit is contained in:
		@@ -114,8 +114,8 @@ func (this *NodeClusterTrafficDailyStatDAO) FindDailyStats(tx *dbs.Tx, clusterId
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SumDailyStats 计算当月总流量
 | 
			
		||||
func (this *NodeClusterTrafficDailyStatDAO) SumDailyStats(tx *dbs.Tx, clusterId int64, dayFrom string, dayTo string) (*NodeClusterTrafficDailyStat, error) {
 | 
			
		||||
// SumDailyStat 计算当月总流量
 | 
			
		||||
func (this *NodeClusterTrafficDailyStatDAO) SumDailyStat(tx *dbs.Tx, clusterId int64, dayFrom string, dayTo string) (*NodeClusterTrafficDailyStat, error) {
 | 
			
		||||
	one, err := this.Query(tx).
 | 
			
		||||
		Result("SUM(bytes) AS bytes", "SUM(cachedBytes) AS cachedBytes", "SUM(countRequests) AS countRequests", "SUM(countCachedRequests) AS countCachedRequests", "SUM(countAttackRequests) AS countAttackRequests", "SUM(attackBytes) AS attackBytes").
 | 
			
		||||
		Attr("clusterId", clusterId).
 | 
			
		||||
 
 | 
			
		||||
@@ -117,6 +117,21 @@ func (this *NodeTrafficDailyStatDAO) FindDailyStats(tx *dbs.Tx, role string, nod
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SumDailyStat 计算日期之间的总和
 | 
			
		||||
func (this *NodeTrafficDailyStatDAO) SumDailyStat(tx *dbs.Tx, role string, nodeId int64, dayFrom string, dayTo string) (*NodeTrafficDailyStat, error) {
 | 
			
		||||
	one, err := this.Query(tx).
 | 
			
		||||
		Result("SUM(bytes) AS bytes", "SUM(cachedBytes) AS cachedBytes", "SUM(countRequests) AS countRequests", "SUM(countCachedRequests) AS countCachedRequests", "SUM(countAttackRequests) AS countAttackRequests", "SUM(attackBytes) AS attackBytes").
 | 
			
		||||
		Attr("nodeId", nodeId).
 | 
			
		||||
		Attr("role", role).
 | 
			
		||||
		Between("day", dayFrom, dayTo).
 | 
			
		||||
		Find()
 | 
			
		||||
	if err != nil || one == nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return one.(*NodeTrafficDailyStat), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Clean 清理历史数据
 | 
			
		||||
func (this *NodeTrafficDailyStatDAO) Clean(tx *dbs.Tx, days int) error {
 | 
			
		||||
	var day = timeutil.Format("Ymd", time.Now().AddDate(0, 0, -days))
 | 
			
		||||
 
 | 
			
		||||
@@ -86,15 +86,13 @@ func (this *ServerStatBoardService) ComposeServerStatNodeClusterBoard(ctx contex
 | 
			
		||||
	result.CountServers = countServers
 | 
			
		||||
 | 
			
		||||
	// 当月总流量
 | 
			
		||||
	monthlyTrafficStat, err := stats.SharedNodeClusterTrafficDailyStatDAO.SumDailyStats(tx, req.NodeClusterId, timeutil.Format("Ym01"), timeutil.Format("Ym31"))
 | 
			
		||||
	monthlyTrafficStat, err := stats.SharedNodeClusterTrafficDailyStatDAO.SumDailyStat(tx, req.NodeClusterId, timeutil.Format("Ym01"), timeutil.Format("Ym31"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var monthlyTrafficBytes int64
 | 
			
		||||
	if monthlyTrafficStat != nil {
 | 
			
		||||
		monthlyTrafficBytes = int64(monthlyTrafficStat.Bytes)
 | 
			
		||||
		result.MonthlyTrafficBytes = int64(monthlyTrafficStat.Bytes)
 | 
			
		||||
	}
 | 
			
		||||
	result.MonthlyTrafficBytes = monthlyTrafficBytes
 | 
			
		||||
 | 
			
		||||
	// 按日流量统计
 | 
			
		||||
	var dayFrom = timeutil.Format("Ymd", time.Now().AddDate(0, 0, -14))
 | 
			
		||||
@@ -326,13 +324,30 @@ func (this *ServerStatBoardService) ComposeServerStatNodeBoard(ctx context.Conte
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 当月总流量
 | 
			
		||||
	monthlyTrafficStat, err := stats.SharedNodeTrafficDailyStatDAO.SumDailyStat(tx, nodeconfigs.NodeRoleNode, req.NodeId, timeutil.Format("Ym01"), timeutil.Format("Ym31"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if monthlyTrafficStat != nil {
 | 
			
		||||
		result.MonthlyTrafficBytes = int64(monthlyTrafficStat.Bytes)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 按日流量统计
 | 
			
		||||
	var dayFrom = timeutil.Format("Ymd", time.Now().AddDate(0, 0, -14))
 | 
			
		||||
	dailyTrafficStats, err := stats.SharedNodeTrafficDailyStatDAO.FindDailyStats(tx, "node", req.NodeId, dayFrom, timeutil.Format("Ymd"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var dailyTrafficBytes int64
 | 
			
		||||
	var lastDailyTrafficBytes int64
 | 
			
		||||
	for _, stat := range dailyTrafficStats {
 | 
			
		||||
		if stat.Day == timeutil.Format("Ymd") { // 当天
 | 
			
		||||
			dailyTrafficBytes = int64(stat.Bytes)
 | 
			
		||||
		} else if stat.Day == timeutil.Format("Ymd", time.Now().AddDate(0, 0, -1)) { // 昨天
 | 
			
		||||
			lastDailyTrafficBytes = int64(stat.Bytes)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		result.DailyTrafficStats = append(result.DailyTrafficStats, &pb.ComposeServerStatNodeBoardResponse_DailyTrafficStat{
 | 
			
		||||
			Day:                 stat.Day,
 | 
			
		||||
			Bytes:               int64(stat.Bytes),
 | 
			
		||||
@@ -343,6 +358,8 @@ func (this *ServerStatBoardService) ComposeServerStatNodeBoard(ctx context.Conte
 | 
			
		||||
			AttackBytes:         int64(stat.AttackBytes),
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	result.DailyTrafficBytes = dailyTrafficBytes
 | 
			
		||||
	result.LastDailyTrafficBytes = lastDailyTrafficBytes
 | 
			
		||||
 | 
			
		||||
	// 小时流量统计
 | 
			
		||||
	var hourFrom = timeutil.Format("YmdH", time.Now().Add(-23*time.Hour))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user