mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-10-31 18:21:51 +08:00
feat:增加qps
This commit is contained in:
@@ -27,6 +27,8 @@ var (
|
||||
GWAF_RUNTIME_NEW_VERSION string = "" //最新版本号
|
||||
GWAF_RUNTIME_NEW_VERSION_DESC string = "" //最新版本描述
|
||||
|
||||
GWAF_RUNTIME_QPS uint64 = 0 //当前qps
|
||||
|
||||
/**
|
||||
遥测数据
|
||||
*/
|
||||
|
||||
@@ -177,11 +177,17 @@ export default {
|
||||
upTrend: '0%',
|
||||
leftType: 'echarts-line',
|
||||
})
|
||||
that.panelList.push({
|
||||
/* that.panelList.push({
|
||||
title: '今天正常IP(个)',
|
||||
number: that.wafstat_data.NormalIpCountOfToday,
|
||||
upTrend: '0%',
|
||||
leftType: 'echarts-line',
|
||||
})*/
|
||||
that.panelList.push({
|
||||
title: '当前QPS',
|
||||
number: that.wafstat_data.CurrentQps,
|
||||
upTrend: '0%',
|
||||
leftType: 'echarts-line',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -27,6 +27,7 @@ import (
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"sync/atomic"
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
@@ -136,6 +137,15 @@ func (m *wafSystenService) run() {
|
||||
s := gocron.NewScheduler(timezone)
|
||||
|
||||
global.GWAF_LAST_UPDATE_TIME = time.Now()
|
||||
// 每1秒执行qps清空
|
||||
s.Every(1).Seconds().Do(func() {
|
||||
// 清零计数器
|
||||
atomic.StoreUint64(&global.GWAF_RUNTIME_QPS, 0)
|
||||
|
||||
// 输出清零后的计数
|
||||
//newCount := atomic.LoadUint64(&requestCount)
|
||||
})
|
||||
|
||||
// 每10秒执行一次
|
||||
s.Every(10).Seconds().Do(func() {
|
||||
if global.GWAF_SWITCH_TASK_COUNTER == false {
|
||||
|
||||
+15
-14
@@ -3,20 +3,21 @@ package response
|
||||
import "SamWaf/model"
|
||||
|
||||
type WafStat struct {
|
||||
AttackCountOfToday int64 //今日攻击数量
|
||||
VisitCountOfToday int64 //今天访问数量
|
||||
AttackCountOfYesterday int64 //昨日攻击数量
|
||||
VisitCountOfYesterday int64 //昨日访问数量
|
||||
AttackCountOfLastWeekToday int64 //上周攻击数量
|
||||
VisitCountOfLastWeekToday int64 //上周访问数量
|
||||
NormalIpCountOfToday int64 //今日正常IP数量
|
||||
IllegalIpCountOfToday int64 //今日非法IP数量
|
||||
NormalCountryCountOfToday int64 //今日正常国家数量
|
||||
IllegalCountryCountOfToday int64 //今日非法国家数量
|
||||
NormalProvinceCountOfToday int64 //今日正常省份数量
|
||||
IllegalProvinceCountOfToday int64 //今日非法省份数量
|
||||
NormalCityCountOfToday int64 //今日正常城市数量
|
||||
IllegalCityCountOfToday int64 //今日非法城市数量
|
||||
AttackCountOfToday int64 //今日攻击数量
|
||||
VisitCountOfToday int64 //今天访问数量
|
||||
AttackCountOfYesterday int64 //昨日攻击数量
|
||||
VisitCountOfYesterday int64 //昨日访问数量
|
||||
AttackCountOfLastWeekToday int64 //上周攻击数量
|
||||
VisitCountOfLastWeekToday int64 //上周访问数量
|
||||
NormalIpCountOfToday int64 //今日正常IP数量
|
||||
IllegalIpCountOfToday int64 //今日非法IP数量
|
||||
NormalCountryCountOfToday int64 //今日正常国家数量
|
||||
IllegalCountryCountOfToday int64 //今日非法国家数量
|
||||
NormalProvinceCountOfToday int64 //今日正常省份数量
|
||||
IllegalProvinceCountOfToday int64 //今日非法省份数量
|
||||
NormalCityCountOfToday int64 //今日正常城市数量
|
||||
IllegalCityCountOfToday int64 //今日非法城市数量
|
||||
CurrentQps uint64 //当前QPS
|
||||
}
|
||||
type WafStatRange struct {
|
||||
AttackCountOfRange map[int]int64 //区间攻击数量
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/shirou/gopsutil/net"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -62,6 +63,7 @@ func (receiver *WafStatService) StatHomeSumDayApi() (response2.WafStat, error) {
|
||||
IllegalProvinceCountOfToday: 0,
|
||||
NormalCityCountOfToday: 0,
|
||||
IllegalCityCountOfToday: 0,
|
||||
CurrentQps: atomic.LoadUint64(&global.GWAF_RUNTIME_QPS),
|
||||
},
|
||||
nil
|
||||
}
|
||||
@@ -190,6 +192,7 @@ func (receiver *WafStatService) StatHomeRumtimeSysinfo() []response2.WafNameValu
|
||||
|
||||
data = append(data, response2.WafNameValue{Name: "软件版本", Value: fmt.Sprintf("%v", global.GWAF_RELEASE_VERSION_NAME)})
|
||||
data = append(data, response2.WafNameValue{Name: "软件版本Code", Value: fmt.Sprintf("%v", global.GWAF_RELEASE_VERSION)})
|
||||
data = append(data, response2.WafNameValue{Name: "当前QPS", Value: fmt.Sprintf("%v", atomic.LoadUint64(&global.GWAF_RUNTIME_QPS))})
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -62,6 +63,7 @@ func (waf *WafEngine) Error() string {
|
||||
return fmt.Sprintf(fs)
|
||||
}
|
||||
func (waf *WafEngine) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
atomic.AddUint64(&global.GWAF_RUNTIME_QPS, 1) // 原子增加计数器
|
||||
host := r.Host
|
||||
if !strings.Contains(host, ":") {
|
||||
host = host + ":80"
|
||||
|
||||
Reference in New Issue
Block a user