Skip to content

Commit 0798d70

Browse files
committed
Update.
1 parent c85e4d3 commit 0798d70

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

service/singleton/alertsentinel.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -394,9 +394,6 @@ func UpdateTrafficStats(serverID uint64, inTransfer, outTransfer uint64) {
394394
return
395395
}
396396

397-
// 流量总计
398-
totalTransfer := inTransfer + outTransfer
399-
400397
// 遍历所有报警规则,只更新包含此服务器的规则
401398
for _, alert := range Alerts {
402399
if !alert.Enabled() {
@@ -425,9 +422,25 @@ func UpdateTrafficStats(serverID uint64, inTransfer, outTransfer uint64) {
425422
}
426423
}
427424

428-
// 服务器在规则监控范围内,更新流量数据
425+
// 服务器在规则监控范围内,根据规则类型更新相应的流量数据
426+
var transferValue uint64
427+
switch alert.Rules[j].Type {
428+
case "transfer_in_cycle":
429+
// 只计算入站流量
430+
transferValue = inTransfer
431+
case "transfer_out_cycle":
432+
// 只计算出站流量
433+
transferValue = outTransfer
434+
case "transfer_all_cycle":
435+
// 计算总流量
436+
transferValue = inTransfer + outTransfer
437+
default:
438+
// 默认使用总流量(向后兼容)
439+
transferValue = inTransfer + outTransfer
440+
}
441+
429442
// 不论大小如何,总是更新最新值
430-
stats.Transfer[serverID] = totalTransfer
443+
stats.Transfer[serverID] = transferValue
431444

432445
// 更新服务器名称
433446
if serverName != "" {
@@ -452,7 +465,7 @@ func UpdateTrafficStats(serverID uint64, inTransfer, outTransfer uint64) {
452465
serverCopy.Host = server.Host
453466
}
454467
ServerLock.RUnlock()
455-
checkTrafficThresholds(alert, serverCopy, &alert.Rules[j], totalTransfer)
468+
checkTrafficThresholds(alert, serverCopy, &alert.Rules[j], transferValue)
456469
} else {
457470
ServerLock.RUnlock()
458471
}

0 commit comments

Comments
 (0)