filter empty group of alerting rule

This commit is contained in:
liugq 2023-03-22 10:46:26 +08:00
parent 157fc43ee8
commit bc024bcfce
1 changed files with 18 additions and 0 deletions

View File

@ -15,6 +15,7 @@ import (
"infini.sh/framework/core/elastic"
"infini.sh/framework/core/event"
"infini.sh/framework/core/global"
"infini.sh/framework/core/insight"
"infini.sh/framework/core/kv"
"infini.sh/framework/core/orm"
"infini.sh/framework/core/queue"
@ -62,6 +63,14 @@ func (alertAPI *AlertAPI) createRule(w http.ResponseWriter, req *http.Request, p
if rule.Schedule.Interval == ""{
rule.Schedule.Interval = "1m"
}
//filter empty metric group
var groups []insight.MetricGroupItem
for _, grp := range rule.Metrics.Groups {
if grp.Field != "" {
groups = append(groups, grp)
}
}
rule.Metrics.Groups = groups
err = orm.Save(nil, rule)
if err != nil {
@ -282,6 +291,15 @@ func (alertAPI *AlertAPI) updateRule(w http.ResponseWriter, req *http.Request, p
rule.Created = create
rule.Updated = time.Now()
//filter empty metric group
var groups []insight.MetricGroupItem
for _, grp := range rule.Metrics.Groups {
if grp.Field != "" {
groups = append(groups, grp)
}
}
rule.Metrics.Groups = groups
err = orm.Update(nil, rule)
if err != nil {
alertAPI.WriteError(w, err.Error(), http.StatusInternalServerError)