Skip to content

Commit c801bea

Browse files
committed
Update.
1 parent 41c309b commit c801bea

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

service/singleton/singleton.go

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1638,7 +1638,7 @@ func validateMonitorData() {
16381638
log.Println("开始验证监控配置数据完整性...")
16391639

16401640
if ServiceSentinelShared == nil {
1641-
log.Println("ServiceSentinel未初始化,跳过监控数据验证")
1641+
log.Println("ServiceSentinel正在异步初始化中,跳过监控数据验证")
16421642
return
16431643
}
16441644

@@ -1701,8 +1701,32 @@ func validateAlertRuleData() {
17011701
log.Printf("警告:报警规则 %s (ID:%d) 的第 %d 个子规则缺少类型", alert.Name, alert.ID, i+1)
17021702
invalidCount++
17031703
}
1704-
if rule.Max <= 0 && !rule.IsTransferDurationRule() {
1705-
log.Printf("警告:报警规则 %s (ID:%d) 的第 %d 个子规则阈值不合理", alert.Name, alert.ID, i+1)
1704+
1705+
// 检查阈值合理性 - 不同类型有不同的阈值字段
1706+
hasValidThreshold := false
1707+
switch rule.Type {
1708+
case "offline":
1709+
// offline类型不需要max/min阈值,只需要duration
1710+
hasValidThreshold = rule.Duration > 0
1711+
case "cpu", "memory", "swap", "disk":
1712+
// 系统资源类型需要max或min阈值
1713+
hasValidThreshold = rule.Max > 0 || rule.Min > 0
1714+
case "load1", "load5", "load15":
1715+
// 负载类型需要max阈值
1716+
hasValidThreshold = rule.Max > 0
1717+
case "process_count":
1718+
// 进程数量类型需要max或min阈值
1719+
hasValidThreshold = rule.Max > 0 || rule.Min > 0
1720+
case "transfer_in", "transfer_out", "transfer_total":
1721+
// 流量类型需要max阈值
1722+
hasValidThreshold = rule.Max > 0
1723+
default:
1724+
// 其他类型默认检查max
1725+
hasValidThreshold = rule.Max > 0
1726+
}
1727+
1728+
if !hasValidThreshold {
1729+
log.Printf("警告:报警规则 %s (ID:%d) 的第 %d 个子规则(%s)阈值不合理", alert.Name, alert.ID, i+1, rule.Type)
17061730
invalidCount++
17071731
}
17081732
}

0 commit comments

Comments
 (0)