Merge pull request #8163 from bashgeek/telegram_metrics

Add metrics/matches to Telegram notifications (proposed fix for #8110)
This commit is contained in:
Daniel Lee 2017-04-19 15:03:03 +02:00 committed by GitHub
commit ee3a553800

View File

@ -87,7 +87,7 @@ func (this *TelegramNotifier) Notify(evalContext *alerting.EvalContext) error {
bodyJSON.Set("chat_id", this.ChatID) bodyJSON.Set("chat_id", this.ChatID)
bodyJSON.Set("parse_mode", "html") bodyJSON.Set("parse_mode", "html")
message := fmt.Sprintf("%s\nState: %s\nMessage: %s\n", evalContext.GetNotificationTitle(), evalContext.Rule.Name, evalContext.Rule.Message) message := fmt.Sprintf("<b>%s</b>\nState: %s\nMessage: %s\n", evalContext.GetNotificationTitle(), evalContext.Rule.Name, evalContext.Rule.Message)
ruleUrl, err := evalContext.GetRuleUrl() ruleUrl, err := evalContext.GetRuleUrl()
if err == nil { if err == nil {
@ -96,6 +96,19 @@ func (this *TelegramNotifier) Notify(evalContext *alerting.EvalContext) error {
if evalContext.ImagePublicUrl != "" { if evalContext.ImagePublicUrl != "" {
message = message + fmt.Sprintf("Image: %s\n", evalContext.ImagePublicUrl) message = message + fmt.Sprintf("Image: %s\n", evalContext.ImagePublicUrl)
} }
metrics := ""
fieldLimitCount := 4
for index, evt := range evalContext.EvalMatches {
metrics += fmt.Sprintf("\n%s: %s", evt.Metric, evt.Value)
if index > fieldLimitCount {
break
}
}
if metrics != "" {
message = message + fmt.Sprintf("\n<i>Metrics:</i>%s", metrics)
}
bodyJSON.Set("text", message) bodyJSON.Set("text", message)
url := fmt.Sprintf(telegeramApiUrl, this.BotToken, "sendMessage") url := fmt.Sprintf(telegeramApiUrl, this.BotToken, "sendMessage")