diff --git a/src/bean/entity/alert_list.go b/src/bean/entity/alert_list.go index 9b84d9a97650ea1ad1fcb97de7fdbde1447c4311..0829ffc99c5100397d7c37bb3123182eb3374048 100644 --- a/src/bean/entity/alert_list.go +++ b/src/bean/entity/alert_list.go @@ -5,25 +5,29 @@ import ( ) type AlertList struct { - Id int `json:"id"` // 预警列表ID,主键,自增长 - AlertPoint string `json:"alert_point"` // 预警点 - AlertRulesId string `json:"alert_rules_id"` // 告警规则id - RiskLevel int `json:"risk_level"` // 风险等级,1:低风险,2:一般风险,3:较大风险,4:重大风险 - AlertTime jsontime.Time `json:"alert_time"` // 预警时间 - ClassId int `json:"class_id" xorm:"'class_id'"` // 预警对象id(级联:预警分类/预警对象) - MetricConfigId string `json:"metric_config_id"` // 预警指标id // 预警指标 - CurrentValue float64 `json:"current_value"` // 当前报警值 - AlertCondition string `json:"alert_condition" xorm:"'alert_condition'"` // 预警规则(预警阈值) 字典值 - NotificationCount int `json:"notification_count"` // 通知人数 - PushCount int `json:"push_count"` // 推送次数 - LastPushTime jsontime.Time `json:"last_push_time"` // 最近推送时间 - Status int `json:"status"` // 状态,1:已恢复 2:未恢复 3:已关闭 - IsDisposed int `json:"is_disposed"` // 是否处置(工单管理),1:已处置,2:未处置 - DisposalContent string `json:"disposal_content"` // 处置内容(工单管理,结果反馈) - CreatedBy string `json:"created_by" xorm:"'created_by'"` // 创建人 - CreatedAt jsontime.Time `json:"created_at" xorm:"'created_at'"` // 创建时间 - UpdatedBy string `json:"updated_by" xorm:"'updated_by'"` // 更新人 - UpdatedAt jsontime.Time `json:"updated_at" xorm:"'updated_at'"` // 更新时间 + Id int `json:"id"` // 预警列表ID,主键,自增长 + AlertPoint string `json:"alert_point"` // 预警点 + AlertRulesId string `json:"alert_rules_id"` // 告警规则id + RiskLevel int `json:"risk_level"` // 风险等级,1:低风险,2:一般风险,3:较大风险,4:重大风险 + AlertTime jsontime.Time `json:"alert_time"` // 预警时间 + ClassId int `json:"class_id" xorm:"'class_id'"` // 预警对象id(级联:预警分类/预警对象) + ClassParentName string `json:"class_parent_name" xorm:"class_parent_name"` // 预警分类名称 TODO 该字段做关联存储或查询 + ClassName string `json:"class_name" xorm:"class_name"` // 预警对象名称 TODO 该字段做关联存储或查询 + MetricConfigId string `json:"metric_config_id"` // 预警指标id // 预警指标 + MetricConfigName string `json:"metric_config_name" xorm:"metric_config_name"` // 预警指标名称 + AlertRuleType string `json:"alert_rule_type" xorm:"alert_rule_type"` // 预警规则类型 TODO 该字段做关联存储或查询 + CurrentValue float64 `json:"current_value"` // 当前报警值 + AlertCondition string `json:"alert_condition" xorm:"'alert_condition'"` // 预警规则(预警阈值) 字典值 + NotificationCount int `json:"notification_count"` // 通知人数 + PushCount int `json:"push_count"` // 推送次数 + LastPushTime jsontime.Time `json:"last_push_time"` // 最近推送时间 + Status int `json:"status"` // 状态,1:已恢复 2:未恢复 3:已关闭 + IsDisposed int `json:"is_disposed"` // 是否处置(工单管理),1:已处置,2:未处置 + DisposalContent string `json:"disposal_content"` // 处置内容(工单管理,结果反馈) + CreatedBy string `json:"created_by" xorm:"'created_by'"` // 创建人 + CreatedAt jsontime.Time `json:"created_at" xorm:"'created_at'"` // 创建时间 + UpdatedBy string `json:"updated_by" xorm:"'updated_by'"` // 更新人 + UpdatedAt jsontime.Time `json:"updated_at" xorm:"'updated_at'"` // 更新时间 } func (a *AlertList) TableName() string { diff --git a/src/bean/entity/alert_overview.go b/src/bean/entity/alert_overview.go new file mode 100644 index 0000000000000000000000000000000000000000..3390cd44d2cfdd96522f6d10a7091b6c834fe96c --- /dev/null +++ b/src/bean/entity/alert_overview.go @@ -0,0 +1,25 @@ +package entity + +import "gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/jsontime" + +type AlertOverview struct { + RiskLevel int `json:"risk_level"` + MetricName string `json:"metric_name" xorm:"'metric_name'"` // 预警规则名称(指标名称) + UnresolvedCount int `json:"unresolved_count"` // 未恢复数量 + TotalCount int `json:"total_count"` // 总预警数 + List []AlertArray `json:"list"` // 预警列表 + CreatedBy string `json:"created_by" xorm:"'created_by'"` // 创建人 + CreatedAt jsontime.Time `json:"created_at" xorm:"'created_at'"` // 创建时间 + UpdatedBy string `json:"updated_by" xorm:"'updated_by'"` // 更新人 + UpdatedAt jsontime.Time `json:"updated_at" xorm:"'updated_at'"` // 更新时间 +} + +type AlertArray struct { + MetricName string `json:"metric_name" xorm:"'metric_name'"` // 预警规则名称(指标名称) + UnresolvedCount int `json:"unresolved_count"` // 未恢复数量 + TotalCount int `json:"total_count"` // 总预警数 +} + +func (a *AlertOverview) TableName() string { + return "alert_overview" +} diff --git a/src/router/alertlistrouter.go.go b/src/router/alertlistrouter.go.go index 4dccf9660915d3f72fda9b62625fae8d5f9bafbc..8bc089b3225e2f015f3a0f9f4927b2b3eedbe717 100644 --- a/src/router/alertlistrouter.go.go +++ b/src/router/alertlistrouter.go.go @@ -13,5 +13,6 @@ func InitAlertListRouter(e *gin.Engine) { { group.GET("", controller.DetailAlertList) group.GET("list", controller.ListAlertList) + group.PUT("", controller.UpdateAlertList) } } diff --git a/src/service/alert_list.go b/src/service/alert_list.go index a3576002425760a8d6286e1e90065ab6bc074a81..c597a122015af061868896f2aa108ffd7cab473f 100644 --- a/src/service/alert_list.go +++ b/src/service/alert_list.go @@ -37,7 +37,11 @@ func (a *AlertListSvc) GetDataById(req request.DetailAlertList) (resp response.A RiskLevel: 4, AlertTime: now, ClassId: 14, + ClassParentName: "预警分类", + ClassName: "预警对象", MetricConfigId: "d773b37b-dbb4-4a7b-be11-ab40f8acc00e", + MetricConfigName: "CPU负载过高", + AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49", CurrentValue: 85, NotificationCount: 3, PushCount: 3, @@ -70,7 +74,11 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL RiskLevel: 4, AlertTime: now, ClassId: 14, + ClassParentName: "预警分类", + ClassName: "预警对象", MetricConfigId: "d773b37b-dbb4-4a7b-be11-ab40f8acc00e", + MetricConfigName: "磁盘空间不足", + AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49", CurrentValue: 85, NotificationCount: 3, PushCount: 3, @@ -97,7 +105,11 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL RiskLevel: 3, AlertTime: now, ClassId: 14, + ClassParentName: "预警分类", + ClassName: "预警对象", MetricConfigId: "d773b37b-dbb4-4a7b-be11-ab40f8acc00e", + MetricConfigName: "响应时间超时", + AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49", CurrentValue: 85, NotificationCount: 1, PushCount: 1,