mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-08 03:00:26 +08:00
节点看板数据中增加当月、昨日、今日流量
This commit is contained in:
@@ -114,8 +114,8 @@ func (this *NodeClusterTrafficDailyStatDAO) FindDailyStats(tx *dbs.Tx, clusterId
|
|||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// SumDailyStats 计算当月总流量
|
// SumDailyStat 计算当月总流量
|
||||||
func (this *NodeClusterTrafficDailyStatDAO) SumDailyStats(tx *dbs.Tx, clusterId int64, dayFrom string, dayTo string) (*NodeClusterTrafficDailyStat, error) {
|
func (this *NodeClusterTrafficDailyStatDAO) SumDailyStat(tx *dbs.Tx, clusterId int64, dayFrom string, dayTo string) (*NodeClusterTrafficDailyStat, error) {
|
||||||
one, err := this.Query(tx).
|
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").
|
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).
|
Attr("clusterId", clusterId).
|
||||||
|
|||||||
@@ -117,6 +117,21 @@ func (this *NodeTrafficDailyStatDAO) FindDailyStats(tx *dbs.Tx, role string, nod
|
|||||||
return result, nil
|
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 清理历史数据
|
// Clean 清理历史数据
|
||||||
func (this *NodeTrafficDailyStatDAO) Clean(tx *dbs.Tx, days int) error {
|
func (this *NodeTrafficDailyStatDAO) Clean(tx *dbs.Tx, days int) error {
|
||||||
var day = timeutil.Format("Ymd", time.Now().AddDate(0, 0, -days))
|
var day = timeutil.Format("Ymd", time.Now().AddDate(0, 0, -days))
|
||||||
|
|||||||
@@ -86,15 +86,13 @@ func (this *ServerStatBoardService) ComposeServerStatNodeClusterBoard(ctx contex
|
|||||||
result.CountServers = countServers
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var monthlyTrafficBytes int64
|
|
||||||
if monthlyTrafficStat != nil {
|
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))
|
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))
|
var dayFrom = timeutil.Format("Ymd", time.Now().AddDate(0, 0, -14))
|
||||||
dailyTrafficStats, err := stats.SharedNodeTrafficDailyStatDAO.FindDailyStats(tx, "node", req.NodeId, dayFrom, timeutil.Format("Ymd"))
|
dailyTrafficStats, err := stats.SharedNodeTrafficDailyStatDAO.FindDailyStats(tx, "node", req.NodeId, dayFrom, timeutil.Format("Ymd"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
var dailyTrafficBytes int64
|
||||||
|
var lastDailyTrafficBytes int64
|
||||||
for _, stat := range dailyTrafficStats {
|
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{
|
result.DailyTrafficStats = append(result.DailyTrafficStats, &pb.ComposeServerStatNodeBoardResponse_DailyTrafficStat{
|
||||||
Day: stat.Day,
|
Day: stat.Day,
|
||||||
Bytes: int64(stat.Bytes),
|
Bytes: int64(stat.Bytes),
|
||||||
@@ -343,6 +358,8 @@ func (this *ServerStatBoardService) ComposeServerStatNodeBoard(ctx context.Conte
|
|||||||
AttackBytes: int64(stat.AttackBytes),
|
AttackBytes: int64(stat.AttackBytes),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
result.DailyTrafficBytes = dailyTrafficBytes
|
||||||
|
result.LastDailyTrafficBytes = lastDailyTrafficBytes
|
||||||
|
|
||||||
// 小时流量统计
|
// 小时流量统计
|
||||||
var hourFrom = timeutil.Format("YmdH", time.Now().Add(-23*time.Hour))
|
var hourFrom = timeutil.Format("YmdH", time.Now().Add(-23*time.Hour))
|
||||||
|
|||||||
Reference in New Issue
Block a user