Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 22 additions & 10 deletions controllers/prometheusalert.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ type PrometheusAlertMsg struct {
}

func (c *PrometheusAlertController) PrometheusAlert() {
Title := beego.AppConfig.String("title")

logsign := "[" + LogsSign() + "]"
var p_json interface{}
//针对prometheus的消息特殊处理
Expand Down Expand Up @@ -187,14 +189,19 @@ func (c *PrometheusAlertController) PrometheusAlert() {
//logs.Debug("当前模版:", Return_pMsg.TplName)
//获取渲染后的模版
err, msg := TransformAlertMessage(p_alertmanager_json, Return_pMsg.Tpl)
title_err, title_msg := TransformAlertMessage(p_json, Title)

if err != nil {
//失败不发送消息
logs.Error(logsign, err.Error())
message = err.Error()
} else {
//发送消息
message = SendMessagePrometheusAlert(msg, &Return_pMsg, logsign)
if title_err != nil {
logs.Error(logsign, title_err.Error())
message = SendMessagePrometheusAlert(Title, msg, &Return_pMsg, logsign)
} else {
message = SendMessagePrometheusAlert(title_msg, msg, &Return_pMsg, logsign)
}
}

}
Expand All @@ -203,13 +210,19 @@ func (c *PrometheusAlertController) PrometheusAlert() {
} else {
//获取渲染后的模版
err, msg := TransformAlertMessage(p_json, PrometheusAlertTpl.Tpl)
title_err, title_msg := TransformAlertMessage(p_json, Title)

if err != nil {
logs.Error(logsign, err.Error())
message = err.Error()
} else {
//发送消息
message = SendMessagePrometheusAlert(msg, &pMsg, logsign)
if title_err != nil {
logs.Error(logsign, title_err.Error())
message = SendMessagePrometheusAlert(Title, msg, &pMsg, logsign)
} else {
message = SendMessagePrometheusAlert(title_msg, msg, &pMsg, logsign)
}
}
}

Expand Down Expand Up @@ -443,8 +456,7 @@ func TransformAlertMessage(p_json interface{}, tpltext string) (error error, msg
}

// 发送消息
func SendMessagePrometheusAlert(message string, pmsg *PrometheusAlertMsg, logsign string) string {
Title := beego.AppConfig.String("title")
func SendMessagePrometheusAlert(title, message string, pmsg *PrometheusAlertMsg, logsign string) string {
var ReturnMsg string
models.AlertsFromCounter.WithLabelValues("/prometheusalert").Add(1)
ChartsJson.Prometheusalert += 1
Expand All @@ -464,21 +476,21 @@ func SendMessagePrometheusAlert(message string, pmsg *PrometheusAlertMsg, logsig
case "dd":
Ddurl := strings.Split(pmsg.Ddurl, ",")
if pmsg.RoundRobin == "true" {
ReturnMsg += PostToDingDing(Title, message, DoBalance(Ddurl), pmsg.AtSomeOne, logsign)
ReturnMsg += PostToDingDing(title, message, DoBalance(Ddurl), pmsg.AtSomeOne, logsign)
} else {
for _, url := range Ddurl {
ReturnMsg += PostToDingDing(Title, message, url, pmsg.AtSomeOne, logsign)
ReturnMsg += PostToDingDing(title, message, url, pmsg.AtSomeOne, logsign)
}
}

//飞书渠道
case "fs":
Fsurl := strings.Split(pmsg.Fsurl, ",")
if pmsg.RoundRobin == "true" {
ReturnMsg += PostToFS(Title, message, DoBalance(Fsurl), pmsg.AtSomeOne, logsign)
ReturnMsg += PostToFS(title, message, DoBalance(Fsurl), pmsg.AtSomeOne, logsign)
} else {
for _, url := range Fsurl {
ReturnMsg += PostToFS(Title, message, url, pmsg.AtSomeOne, logsign)
ReturnMsg += PostToFS(title, message, url, pmsg.AtSomeOne, logsign)
}
}

Expand Down Expand Up @@ -540,7 +552,7 @@ func SendMessagePrometheusAlert(message string, pmsg *PrometheusAlertMsg, logsig
ReturnMsg += SendVoice(message, logsign)
//飞书APP渠道
case "fsapp":
ReturnMsg += PostToFeiShuApp(Title, message, pmsg.AtSomeOne, logsign)
ReturnMsg += PostToFeiShuApp(title, message, pmsg.AtSomeOne, logsign)
//kafka渠道
case "kafka":
ReturnMsg += SendKafka(message, logsign)
Expand Down