diff --git a/service/alerting/elasticsearch/engine.go b/service/alerting/elasticsearch/engine.go index 22301ac7..e514ab4f 100644 --- a/service/alerting/elasticsearch/engine.go +++ b/service/alerting/elasticsearch/engine.go @@ -633,7 +633,7 @@ func (engine *Engine) Do(rule *alerting.Rule) error { period := time.Now().Sub(rule.LastNotificationTime.Local()) //log.Error(lastAlertItem.ID, period, periodDuration) - paramsCtx := newParameterCtx(rule, checkResults,alertItem.ID, alertItem.Created.Format(time.RFC3339)) + paramsCtx := newParameterCtx(rule, checkResults,alertItem.ID, alertItem.Created.UnixNano()/1e6) if lastAlertItem.ID == "" || period > periodDuration { actionResults, errCount := performChannels(rule.Channels.Normal, paramsCtx) @@ -724,7 +724,7 @@ func (engine *Engine) Test(rule *alerting.Rule) ([]alerting.ActionExecutionResul return nil, fmt.Errorf("check condition error:%w", err) } var actionResults []alerting.ActionExecutionResult - paramsCtx := newParameterCtx(rule, checkResults, util.GetUUID(), time.Now().Format(time.RFC3339)) + paramsCtx := newParameterCtx(rule, checkResults, util.GetUUID(), time.Now().UnixNano()/1e6) if len(rule.Channels.Normal) > 0 { actionResults, _ = performChannels(rule.Channels.Normal, paramsCtx) }else if len(rule.Channels.Escalation) > 0{ diff --git a/service/alerting/funcs/date.go b/service/alerting/funcs/date.go index 52de96a4..468931ba 100644 --- a/service/alerting/funcs/date.go +++ b/service/alerting/funcs/date.go @@ -36,6 +36,8 @@ func dateInZone(fmt string, date interface{}, zone string) string { t = time.Unix(int64(date), 0) case int32: t = time.Unix(int64(date), 0) + case string: + return date } loc, err := time.LoadLocation(zone) diff --git a/service/alerting/funcs/function.go b/service/alerting/funcs/function.go index 7eeaac87..7c0a15ad 100644 --- a/service/alerting/funcs/function.go +++ b/service/alerting/funcs/function.go @@ -4,7 +4,10 @@ package funcs -import "text/template" +import ( + "strings" + "text/template" +) func GenericFuncMap() template.FuncMap { gfm := make(map[string]interface{}, len(genericMap)) @@ -20,4 +23,6 @@ var genericMap = map[string]interface{}{ "to_fixed": toFixed, "date": date, "date_in_zone": dateInZone, + "to_upper": strings.ToUpper, + "to_lower": strings.ToLower, }