diff --git a/server/dao/alert.go b/server/dao/alert.go index 4accefc776031c3b432f168f07a11360317a921a..090ea057d9f6c367aae9bc0df75e9e6539f82536 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 4f8fc6c07358f0052a83474c24b28515eec2383d..d37a092093c744bbafa68983fcb5ff13457db773 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 e32e3f5aa5bd22b1b429ea17ff6ec37ac4b3b101..565d8a6d4c6b6fe0717870045156419ff9848bf2 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