mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-09 08:40:26 +08:00
79 lines
2.0 KiB
Go
79 lines
2.0 KiB
Go
|
|
package stat
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
||
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||
|
|
"github.com/iwind/TeaGo/maps"
|
||
|
|
timeutil "github.com/iwind/TeaGo/utils/time"
|
||
|
|
)
|
||
|
|
|
||
|
|
type WafAction struct {
|
||
|
|
actionutils.ParentAction
|
||
|
|
}
|
||
|
|
|
||
|
|
func (this *WafAction) Init() {
|
||
|
|
this.Nav("", "stat", "")
|
||
|
|
this.SecondMenu("waf")
|
||
|
|
}
|
||
|
|
|
||
|
|
func (this *WafAction) RunGet(params struct {
|
||
|
|
ServerId int64
|
||
|
|
}) {
|
||
|
|
// 统计数据
|
||
|
|
resp, err := this.RPC().ServerHTTPFirewallDailyStatRPC().ComposeServerHTTPFirewallDashboard(this.AdminContext(), &pb.ComposeServerHTTPFirewallDashboardRequest{
|
||
|
|
Day: timeutil.Format("Ymd"),
|
||
|
|
ServerId: params.ServerId,
|
||
|
|
})
|
||
|
|
if err != nil {
|
||
|
|
this.ErrorPage(err)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
this.Data["countDailyLog"] = resp.CountDailyLog
|
||
|
|
this.Data["countDailyBlock"] = resp.CountDailyBlock
|
||
|
|
this.Data["countDailyCaptcha"] = resp.CountDailyCaptcha
|
||
|
|
this.Data["countWeeklyBlock"] = resp.CountWeeklyBlock
|
||
|
|
this.Data["countMonthlyBlock"] = resp.CountMonthlyBlock
|
||
|
|
|
||
|
|
// 分组
|
||
|
|
groupStatMaps := []maps.Map{}
|
||
|
|
for _, group := range resp.HttpFirewallRuleGroups {
|
||
|
|
groupStatMaps = append(groupStatMaps, maps.Map{
|
||
|
|
"group": maps.Map{
|
||
|
|
"id": group.HttpFirewallRuleGroup.Id,
|
||
|
|
"name": group.HttpFirewallRuleGroup.Name,
|
||
|
|
},
|
||
|
|
"count": group.Count,
|
||
|
|
})
|
||
|
|
}
|
||
|
|
this.Data["groupStats"] = groupStatMaps
|
||
|
|
|
||
|
|
// 每日趋势
|
||
|
|
logStatMaps := []maps.Map{}
|
||
|
|
blockStatMaps := []maps.Map{}
|
||
|
|
captchaStatMaps := []maps.Map{}
|
||
|
|
for _, stat := range resp.LogDailyStats {
|
||
|
|
logStatMaps = append(logStatMaps, maps.Map{
|
||
|
|
"day": stat.Day,
|
||
|
|
"count": stat.Count,
|
||
|
|
})
|
||
|
|
}
|
||
|
|
for _, stat := range resp.BlockDailyStats {
|
||
|
|
blockStatMaps = append(blockStatMaps, maps.Map{
|
||
|
|
"day": stat.Day,
|
||
|
|
"count": stat.Count,
|
||
|
|
})
|
||
|
|
}
|
||
|
|
for _, stat := range resp.CaptchaDailyStats {
|
||
|
|
captchaStatMaps = append(captchaStatMaps, maps.Map{
|
||
|
|
"day": stat.Day,
|
||
|
|
"count": stat.Count,
|
||
|
|
})
|
||
|
|
}
|
||
|
|
this.Data["logDailyStats"] = logStatMaps
|
||
|
|
this.Data["blockDailyStats"] = blockStatMaps
|
||
|
|
this.Data["captchaDailyStats"] = captchaStatMaps
|
||
|
|
|
||
|
|
this.Show()
|
||
|
|
}
|