Skip to content

Commit

Permalink
规则名称支持变量 (ccfos#1217)
Browse files Browse the repository at this point in the history
* 规则名称支持变量

* parse rule_name
  • Loading branch information
bbaobelief authored Oct 20, 2022
1 parent fbff60e commit 15892d6
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
19 changes: 14 additions & 5 deletions src/models/alert_cur_event.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,11 @@ type AggrRule struct {
Value string
}

func (e *AlertCurEvent) ParseRuleNote() error {
e.RuleNote = strings.TrimSpace(e.RuleNote)
func (e *AlertCurEvent) ParseRule(field string) error {
f := e.GetField(field)
f = strings.TrimSpace(f)

if e.RuleNote == "" {
if f == "" {
return nil
}

Expand All @@ -75,7 +76,7 @@ func (e *AlertCurEvent) ParseRuleNote() error {
"{{$value := .TriggerValue}}",
}

text := strings.Join(append(defs, e.RuleNote), "")
text := strings.Join(append(defs, f), "")
t, err := template.New(fmt.Sprint(e.RuleId)).Funcs(tplx.TemplateFuncMap).Parse(text)
if err != nil {
return err
Expand All @@ -87,7 +88,13 @@ func (e *AlertCurEvent) ParseRuleNote() error {
return err
}

e.RuleNote = body.String()
if field == "rule_name" {
e.RuleName = body.String()
}

if field == "rule_note" {
e.RuleNote = body.String()
}
return nil
}

Expand Down Expand Up @@ -133,6 +140,8 @@ func (e *AlertCurEvent) GetField(field string) string {
return fmt.Sprint(e.RuleId)
case "rule_name":
return e.RuleName
case "rule_note":
return e.RuleNote
case "severity":
return fmt.Sprint(e.Severity)
case "runbook_url":
Expand Down
6 changes: 5 additions & 1 deletion src/server/engine/consume.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,11 @@ func consume(events []interface{}, sema *semaphore.Semaphore) {
func consumeOne(event *models.AlertCurEvent) {
LogEvent(event, "consume")

if err := event.ParseRuleNote(); err != nil {
if err := event.ParseRule("rule_name"); err != nil {
event.RuleName = fmt.Sprintf("failed to parse rule name: %v", err)
}

if err := event.ParseRule("rule_note"); err != nil {
event.RuleNote = fmt.Sprintf("failed to parse rule note: %v", err)
}

Expand Down
6 changes: 5 additions & 1 deletion src/server/router/router_event.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@ func pushEventToQueue(c *gin.Context) {
return
}

if err := event.ParseRuleNote(); err != nil {
if err := event.ParseRule("rule_name"); err != nil {
event.RuleName = fmt.Sprintf("failed to parse rule name: %v", err)
}

if err := event.ParseRule("rule_note"); err != nil {
event.RuleNote = fmt.Sprintf("failed to parse rule note: %v", err)
}

Expand Down

0 comments on commit 15892d6

Please sign in to comment.