From 8f05c4d056ba8f15f47d4a87cd816cb123f26592 Mon Sep 17 00:00:00 2001 From: zhanghan2021 Date: Wed, 30 Oct 2024 14:09:07 +0800 Subject: [PATCH] add rule level list and alert state for rule metrics handler --- server/dao/alert.go | 6 ++++++ server/httphandler/rulehandler.go | 12 ++++++++---- server/service/alertservice.go | 9 +++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/server/dao/alert.go b/server/dao/alert.go index 4accefc..090ea05 100644 --- a/server/dao/alert.go +++ b/server/dao/alert.go @@ -213,6 +213,12 @@ func UpdateHandleState(id int, alert *model.Alert) error { return err } +func GetAlertLevel() ([]string, error) { + var levels []string + err := db.MySQL.Model(&model.Alert{}).Distinct("alert_level").Pluck("alert_level", &levels).Error + return levels, err +} + func queryFromDB(db *gorm.DB, alertName, ip, level, handleState string, alertStart, alertEnd model.AlertTime) (*gorm.DB, error) { if len(alertName) > 0 { db = db.Where("alert_name LIKE ? ", "%"+alertName+"%") diff --git a/server/httphandler/rulehandler.go b/server/httphandler/rulehandler.go index 4f8fc6c..d37a092 100644 --- a/server/httphandler/rulehandler.go +++ b/server/httphandler/rulehandler.go @@ -73,11 +73,15 @@ func QueryRules(c *gin.Context) { } func GetMonitorMetricsAndAlertLevel(c *gin.Context) { data := &struct { - Metrics []string `json:"metrics"` - RuleLevel []string `json:"ruleLevel"` + Metrics []string `json:"metrics"` + RuleLevel []string `json:"ruleLevel"` + AlertState []string `json:"alertState"` + AlertLevel []string `json:"alertLevel"` }{ - Metrics: []string{"cpu使用率", "内存使用率", "网络流入", "网络流出", "磁盘容量", "服务器宕机", "TCP连接数"}, - RuleLevel: service.GetRuleLevel(), + Metrics: []string{"cpu使用率", "内存使用率", "网络流入", "网络流出", "磁盘容量", "服务器宕机", "TCP连接数"}, + RuleLevel: service.GetRuleLevel(), + AlertState: []string{"活跃", "待处理", "已处理"}, + AlertLevel: service.GetAlertLevel(), } response.Success(c, data, "获取到监控指标和告警级别") } diff --git a/server/service/alertservice.go b/server/service/alertservice.go index e32e3f5..565d8a6 100644 --- a/server/service/alertservice.go +++ b/server/service/alertservice.go @@ -74,6 +74,15 @@ func UpdateHandleState(id int, state string) error { return nil } +func GetAlertLevel() []string { + var levels = []string{} + result, err := dao.GetAlertLevel() + if err != nil { + return levels + } + return result +} + func PullAlert() error { var previousAlerts []model.AlertResponse -- Gitee