fix: dashboard metrics 慢查询优化(index+UNIX_TIMESTAMP分组) + 批量升级版本号修复

This commit is contained in:
attacker committed 2026-06-24 14:27:58 +00:00
1 parent c515f6ed03
commit 20f64e3851
5 files changed
+222 -19

No files matched your search

+10 -2
View File
@@ -30,7 +30,7 @@ func (e *AlertEngine) Check() {
// 检查 CPU/内存/磁盘/进程/TCP连接/端口 阈值
func (e *AlertEngine) checkResourceAlerts() {
var rules []models.AgentRule
e.db.Where("enabled = ? AND metric IN ?", true, []string{"cpu", "mem", "disk", "service_process", "tcp_time_wait", "tcp_close_wait"}).Find(&rules)
e.db.Where("enabled = ? AND metric IN ?", true, []string{"cpu", "mem", "disk", "service_process", "tcp_time_wait", "tcp_close_wait", "fd"}).Find(&rules)
for _, rule := range rules {
// 获取目标主机最新上报
@@ -81,6 +81,10 @@ func (e *AlertEngine) checkResourceAlerts() {
continue // 进程存在,不触发
}
value = 0 // 进程不存在时触发
case "fd":
var fdStat models.FDMetric
json.Unmarshal([]byte(report.FDInfo), &fdStat)
value = fdStat.UsagePct
}
// 检查是否超阈值
@@ -288,7 +292,7 @@ func (e *AlertEngine) autoResolveAlerts() {
if report.ID > 0 && time.Since(report.ReportTime) < 3*time.Minute {
resolved = true
}
case "cpu", "mem", "disk", "tcp_time_wait", "tcp_close_wait":
case "cpu", "mem", "disk", "tcp_time_wait", "tcp_close_wait", "fd":
// 获取对应规则,检查是否恢复正常
var rule models.AgentRule
e.db.Where("name = ?", alert.RuleName).First(&rule)
@@ -326,6 +330,10 @@ func (e *AlertEngine) autoResolveAlerts() {
var netStat models.NetworkStatModel
json.Unmarshal([]byte(report.NetInfo), &netStat)
value = float64(netStat.TCPCloseWait)
case "fd":
var fdStat models.FDMetric
json.Unmarshal([]byte(report.FDInfo), &fdStat)
value = fdStat.UsagePct
}
if !e.compareOperator(rule.Operator, value, rule.Threshold) {
resolved = true