Commit 6a02848b authored by 李科's avatar 李科

fix: 完善预警规则设置列表

parent 5ce39bee
......@@ -62,7 +62,7 @@ type ListAlertRules struct {
NotifyMethod string `json:"notify_method" form:"notify_method" binding:"omitempty,oneof=all dingtalk sms"` // 预警通知方式 all dingtalk sms
IsEnabled int `json:"is_enabled" form:"is_enabled" binding:"omitempty,oneof=0 1 2"` // 是否开启 1:是 2:否
Keyword string `json:"keyword" form:"keyword"` // 预警规则名称(指标名称)
StartTime string `json:"start_time" form:"start_time"`
EndTime string `json:"end_time" form:"end_time"`
StartTime string `json:"start_time" form:"start_time" binding:"omitempty,datetime=2006-01-02 15:04:05"`
EndTime string `json:"end_time" form:"end_time" binding:"omitempty,datetime=2006-01-02 15:04:05"`
Pagination
}
......@@ -4,6 +4,9 @@ import "gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity"
type AlertRulesItem struct {
entity.AlertRules `xorm:"extends"`
ClassParentName string `json:"class_parent_name" xorm:"class_parent_name"`
ClassName string `json:"class_name" xorm:"class_name"`
MetricConfigName string `json:"metric_config_name" xorm:"metric_config_name"`
AlertCondition []entity.AlertCondition `json:"alert_condition" xorm:"alert_condition"`
AlertRange []entity.RulesAlertRange `json:"alert_range" xorm:"alert_range"`
NotifyMethod []string `json:"notify_method" xorm:"notify_method"`
......
......@@ -18,19 +18,19 @@ type AlertClassSvc struct {
User entity.SystemUserInfo
}
func (m *AlertClassSvc) Add(session *xorm.Session, req request.AddAlertClass) (classId int, err error) {
func (a *AlertClassSvc) Add(session *xorm.Session, req request.AddAlertClass) (classId int, err error) {
now := jsontime.Now()
data := entity.AlertClass{
CreatedBy: m.User.SystemAccount,
CreatedBy: a.User.SystemAccount,
CreatedAt: now,
UpdatedBy: m.User.SystemAccount,
UpdatedBy: a.User.SystemAccount,
UpdatedAt: now,
}
_ = copier.Copy(&data, &req)
var max int
if data.SortOrder >= 0 {
max, err = m.SortOrderMax(data.ParentId)
max, err = a.SortOrderMax(data.ParentId)
if err != nil {
return
}
......@@ -41,10 +41,10 @@ func (m *AlertClassSvc) Add(session *xorm.Session, req request.AddAlertClass) (c
return
}
func (m *AlertClassSvc) Update(session *xorm.Session, req request.UpdateAlertClass) error {
func (a *AlertClassSvc) Update(session *xorm.Session, req request.UpdateAlertClass) error {
now := jsontime.Now()
data := entity.AlertClass{
UpdatedBy: m.User.SystemAccount,
UpdatedBy: a.User.SystemAccount,
UpdatedAt: now,
}
_ = copier.Copy(&data, &req)
......@@ -55,7 +55,7 @@ func (m *AlertClassSvc) Update(session *xorm.Session, req request.UpdateAlertCla
return nil
}
func (m *AlertClassSvc) Move(req request.MoveAlertClass) (err error) {
func (a *AlertClassSvc) Move(req request.MoveAlertClass) (err error) {
db, err := client.GetDbClient()
if err != nil {
err = resp.DbConnectError.WithError(err)
......@@ -123,7 +123,7 @@ func (m *AlertClassSvc) Move(req request.MoveAlertClass) (err error) {
return nil
}
func (m *AlertClassSvc) GetDataById(req request.DetailAlertClass) (resp response.AlertClassItem, err error) {
func (a *AlertClassSvc) GetDataById(req request.DetailAlertClass) (resp response.AlertClassItem, err error) {
db, err := client.GetDbClient()
if err != nil {
return
......@@ -132,7 +132,7 @@ func (m *AlertClassSvc) GetDataById(req request.DetailAlertClass) (resp response
return
}
func (m *AlertClassSvc) List(req request.ListAlertClass) (resp response.AlertClassList, err error) {
func (a *AlertClassSvc) List(req request.ListAlertClass) (resp response.AlertClassList, err error) {
db, err := client.GetDbClient()
if err != nil {
return
......@@ -151,7 +151,7 @@ func (m *AlertClassSvc) List(req request.ListAlertClass) (resp response.AlertCla
return
}
func (m *AlertClassSvc) Tree(req request.ListAlertClass) (resp []*response.AlertClassNode, err error) {
func (a *AlertClassSvc) Tree(req request.ListAlertClass) (resp []*response.AlertClassNode, err error) {
db, err := client.GetDbClient()
if err != nil {
return
......@@ -204,7 +204,7 @@ func sortTree(nodes []*response.AlertClassNode) {
}
}
func (m *AlertClassSvc) SortOrderMax(parentId int) (max int, err error) {
func (a *AlertClassSvc) SortOrderMax(parentId int) (max int, err error) {
db, err := client.GetDbClient()
if err != nil {
return
......@@ -215,7 +215,7 @@ func (m *AlertClassSvc) SortOrderMax(parentId int) (max int, err error) {
return
}
func (m *AlertClassSvc) Delete(ids []int) (err error) {
func (a *AlertClassSvc) Delete(ids []int) (err error) {
db, err := client.GetDbClient()
if err != nil {
return
......
......@@ -18,7 +18,7 @@ type AlertRulesSvc struct {
User entity.SystemUserInfo
}
func (m *AlertRulesSvc) Add(req request.AddAlertRules) error {
func (a *AlertRulesSvc) Add(req request.AddAlertRules) error {
db, err := client.GetDbClient()
if err != nil {
err = resp.DbConnectError.WithError(err)
......@@ -27,9 +27,9 @@ func (m *AlertRulesSvc) Add(req request.AddAlertRules) error {
now := jsontime.Now()
data := entity.AlertRules{
Id: uuid.New().String(),
CreatedBy: m.User.SystemAccount,
CreatedBy: a.User.SystemAccount,
CreatedAt: now,
UpdatedBy: m.User.SystemAccount,
UpdatedBy: a.User.SystemAccount,
UpdatedAt: now,
}
_ = copier.Copy(&data, &req)
......@@ -53,7 +53,7 @@ func (m *AlertRulesSvc) Add(req request.AddAlertRules) error {
metricConfigId string
)
alertClassSvc := AlertClassSvc{User: m.User}
alertClassSvc := AlertClassSvc{User: a.User}
classParentId, err = alertClassSvc.Add(session, request.AddAlertClass{
ClassName: req.ClassParentName,
SortOrder: -1,
......@@ -74,7 +74,7 @@ func (m *AlertRulesSvc) Add(req request.AddAlertRules) error {
data.ClassId = classId
// 添加指标配置
metricConfigSvc := MetricConfigSvc{User: m.User}
metricConfigSvc := MetricConfigSvc{User: a.User}
_ = copier.Copy(&addMetricConfig, &req)
addMetricConfig.SourceFrom = 2
addMetricConfig.MetricName = req.MetricConfigName
......@@ -97,7 +97,7 @@ func (m *AlertRulesSvc) Add(req request.AddAlertRules) error {
return nil
}
func (m *AlertRulesSvc) Update(req request.UpdateAlertRules) error {
func (a *AlertRulesSvc) Update(req request.UpdateAlertRules) error {
db, err := client.GetDbClient()
if err != nil {
err = resp.DbConnectError.WithError(err)
......@@ -105,7 +105,7 @@ func (m *AlertRulesSvc) Update(req request.UpdateAlertRules) error {
}
now := jsontime.Now()
data := entity.AlertRules{
UpdatedBy: m.User.SystemAccount,
UpdatedBy: a.User.SystemAccount,
UpdatedAt: now,
}
_ = copier.Copy(&data, &req)
......@@ -134,7 +134,7 @@ func (m *AlertRulesSvc) Update(req request.UpdateAlertRules) error {
alertClassItem response.AlertClassItem
)
alertClassSvc := AlertClassSvc{User: m.User}
alertClassSvc := AlertClassSvc{User: a.User}
alertClassItem, err = alertClassSvc.GetDataById(request.DetailAlertClass{ClassId: dbAlertRules.ClassId})
if err != nil {
return nil, err
......@@ -155,7 +155,7 @@ func (m *AlertRulesSvc) Update(req request.UpdateAlertRules) error {
}
// 更新指标配置
metricConfigSvc := MetricConfigSvc{User: m.User}
metricConfigSvc := MetricConfigSvc{User: a.User}
_ = copier.Copy(&updateMetricConfig, &req)
updateMetricConfig.SourceFrom = 2
updateMetricConfig.Id = dbAlertRules.MetricConfigId
......@@ -175,23 +175,25 @@ func (m *AlertRulesSvc) Update(req request.UpdateAlertRules) error {
return nil
}
func (m *AlertRulesSvc) GetDataById(req request.DetailAlertRules) (resp response.AlertRulesItem, err error) {
db, err := client.GetDbClient()
func (a *AlertRulesSvc) GetDataById(req request.DetailAlertRules) (resp response.AlertRulesItem, err error) {
list, err := a.List(request.ListAlertRules{Id: req.Id})
if err != nil {
return
}
_, err = db.NewSession().Table(resp.TableName()).Where("id = ?", req.Id).Get(&resp)
if len(list.List) >= 1 {
resp = list.List[0]
}
return
}
func (m *AlertRulesSvc) List(req request.ListAlertRules) (resp response.AlertRulesList, err error) {
func (a *AlertRulesSvc) List(req request.ListAlertRules) (resp response.AlertRulesList, err error) {
db, err := client.GetDbClient()
if err != nil {
return
}
session := db.NewSession()
defer session.Close()
session.Table(new(entity.AlertRules)).Alias("r").Select("r.*")
session.Table(new(entity.AlertRules)).Alias("r").Select("r.*,acp.class_name class_parent_name,ac.class_name,mc.metric_name metric_config_name")
session.Join("LEFT", "metric_config mc", "mc.id = r.metric_config_id")
session.Join("LEFT", "alert_class ac", "ac.class_id = r.class_id")
session.Join("LEFT", "alert_class acp", "acp.class_id = ac.parent_id")
......@@ -204,6 +206,12 @@ func (m *AlertRulesSvc) List(req request.ListAlertRules) (resp response.AlertRul
if req.IsEnabled > 0 {
session.Where("r.is_enabled = ?", req.IsEnabled)
}
if req.StartTime != "" {
session.Where("r.created_at >= ?", req.StartTime)
}
if req.EndTime != "" {
session.Where("r.created_at <= ?", req.EndTime)
}
if req.Keyword != "" {
// 预警对象/预警分类/预警指标
session.Where("r.metric_name LIKE ?", "%"+req.Keyword+"%").
......@@ -221,7 +229,7 @@ func (m *AlertRulesSvc) List(req request.ListAlertRules) (resp response.AlertRul
return
}
func (m *AlertRulesSvc) Delete(ids []string) (err error) {
func (a *AlertRulesSvc) Delete(ids []string) (err error) {
db, err := client.GetDbClient()
if err != nil {
return
......
......@@ -17,7 +17,7 @@ type PrometheusSvc struct {
User entity.SystemUserInfo
}
func (m *PrometheusSvc) Label(req request.PrometheusLabel) (resp response.PrometheusList, err error) {
func (p *PrometheusSvc) Label(req request.PrometheusLabel) (resp response.PrometheusList, err error) {
var (
prometheusLabel response.PrometheusLabel
prometheusSeries response.PrometheusSeries
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment