mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-21 05:40:25 +08:00
用户Dashboard信息中增加缓存、攻击相关信息
This commit is contained in:
@@ -195,15 +195,20 @@ func (this *ServerDailyStatDAO) SumUserMonthlyPeek(tx *dbs.Tx, userId int64, reg
|
|||||||
|
|
||||||
// SumUserDaily 获取某天流量总和
|
// SumUserDaily 获取某天流量总和
|
||||||
// day 格式为YYYYMMDD
|
// day 格式为YYYYMMDD
|
||||||
func (this *ServerDailyStatDAO) SumUserDaily(tx *dbs.Tx, userId int64, regionId int64, day string) (int64, error) {
|
func (this *ServerDailyStatDAO) SumUserDaily(tx *dbs.Tx, userId int64, regionId int64, day string) (stat *ServerDailyStat, err error) {
|
||||||
var query = this.Query(tx)
|
var query = this.Query(tx)
|
||||||
if regionId > 0 {
|
if regionId > 0 {
|
||||||
query.Attr("regionId", regionId)
|
query.Attr("regionId", regionId)
|
||||||
}
|
}
|
||||||
return query.
|
|
||||||
Attr("day", day).
|
one, err := query.Attr("day", day).
|
||||||
Attr("userId", userId).
|
Attr("userId", userId).
|
||||||
SumInt64("bytes", 0)
|
Result("SUM(bytes) AS bytes", "SUM(cachedBytes) AS cachedBytes", "SUM(attackBytes) AS attackBytes", "SUM(countRequests) AS countRequests", "SUM(countCachedRequests) AS countCachedRequests", "SUM(countAttackRequests) AS countAttackRequests").
|
||||||
|
Find()
|
||||||
|
if err != nil || one == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return one.(*ServerDailyStat), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// SumUserTrafficBytesBetweenDays 获取用户某个日期段内的流量总和
|
// SumUserTrafficBytesBetweenDays 获取用户某个日期段内的流量总和
|
||||||
|
|||||||
@@ -445,10 +445,13 @@ func (this *UserService) ComposeUserDashboard(ctx context.Context, req *pb.Compo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 今日总流量
|
// 今日总流量
|
||||||
dailyTrafficBytes, err := models.SharedServerDailyStatDAO.SumUserDaily(tx, req.UserId, 0, currentDay)
|
dailyTrafficStat, err := models.SharedServerDailyStatDAO.SumUserDaily(tx, req.UserId, 0, currentDay)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if dailyTrafficStat == nil {
|
||||||
|
dailyTrafficStat = &models.ServerDailyStat{}
|
||||||
|
}
|
||||||
|
|
||||||
// 近 30 日流量带宽趋势
|
// 近 30 日流量带宽趋势
|
||||||
var dailyTrafficStats = []*pb.ComposeUserDashboardResponse_DailyTrafficStat{}
|
var dailyTrafficStats = []*pb.ComposeUserDashboardResponse_DailyTrafficStat{}
|
||||||
@@ -466,10 +469,13 @@ func (this *UserService) ComposeUserDashboard(ctx context.Context, req *pb.Compo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 流量
|
// 流量
|
||||||
trafficBytes, err := models.SharedServerDailyStatDAO.SumUserDaily(tx, req.UserId, 0, day)
|
trafficStat, err := models.SharedServerDailyStatDAO.SumUserDaily(tx, req.UserId, 0, day)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if trafficStat == nil {
|
||||||
|
trafficStat = &models.ServerDailyStat{}
|
||||||
|
}
|
||||||
|
|
||||||
// 峰值带宽
|
// 峰值带宽
|
||||||
peekBandwidthBytesStat, err := models.SharedUserBandwidthStatDAO.FindUserPeekBandwidthInDay(tx, req.UserId, day)
|
peekBandwidthBytesStat, err := models.SharedUserBandwidthStatDAO.FindUserPeekBandwidthInDay(tx, req.UserId, day)
|
||||||
@@ -481,14 +487,22 @@ func (this *UserService) ComposeUserDashboard(ctx context.Context, req *pb.Compo
|
|||||||
peekBandwidthBytes = int64(peekBandwidthBytesStat.Bytes)
|
peekBandwidthBytes = int64(peekBandwidthBytesStat.Bytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
dailyTrafficStats = append(dailyTrafficStats, &pb.ComposeUserDashboardResponse_DailyTrafficStat{Day: day, Bytes: trafficBytes})
|
dailyTrafficStats = append(dailyTrafficStats, &pb.ComposeUserDashboardResponse_DailyTrafficStat{
|
||||||
|
Day: day,
|
||||||
|
Bytes: int64(trafficStat.Bytes),
|
||||||
|
CachedBytes: int64(trafficStat.CachedBytes),
|
||||||
|
AttackBytes: int64(trafficStat.AttackBytes),
|
||||||
|
CountRequests: int64(trafficStat.CountRequests),
|
||||||
|
CountCachedRequests: int64(trafficStat.CountCachedRequests),
|
||||||
|
CountAttackRequests: int64(trafficStat.CountAttackRequests),
|
||||||
|
})
|
||||||
dailyPeekBandwidthStats = append(dailyPeekBandwidthStats, &pb.ComposeUserDashboardResponse_DailyPeekBandwidthStat{Day: day, Bytes: peekBandwidthBytes})
|
dailyPeekBandwidthStats = append(dailyPeekBandwidthStats, &pb.ComposeUserDashboardResponse_DailyPeekBandwidthStat{Day: day, Bytes: peekBandwidthBytes})
|
||||||
}
|
}
|
||||||
var result = &pb.ComposeUserDashboardResponse{
|
var result = &pb.ComposeUserDashboardResponse{
|
||||||
CountServers: countServers,
|
CountServers: countServers,
|
||||||
MonthlyTrafficBytes: monthlyTrafficBytes,
|
MonthlyTrafficBytes: monthlyTrafficBytes,
|
||||||
MonthlyPeekBandwidthBytes: monthlyPeekBandwidthBytes,
|
MonthlyPeekBandwidthBytes: monthlyPeekBandwidthBytes,
|
||||||
DailyTrafficBytes: dailyTrafficBytes,
|
DailyTrafficBytes: int64(dailyTrafficStat.Bytes),
|
||||||
DailyPeekBandwidthBytes: dailyPeekBandwidthBytes,
|
DailyPeekBandwidthBytes: dailyPeekBandwidthBytes,
|
||||||
DailyTrafficStats: dailyTrafficStats,
|
DailyTrafficStats: dailyTrafficStats,
|
||||||
DailyPeekBandwidthStats: dailyPeekBandwidthStats,
|
DailyPeekBandwidthStats: dailyPeekBandwidthStats,
|
||||||
|
|||||||
Reference in New Issue
Block a user