订阅告警似乎不会走webhook

Viewed 136

这边做了一个wehook程序来判断event里的channels是否有voice,只用于电话告警的场景。
a组配置了cpu>95的告警,b组订阅了这个告警并新加了电话的channel,但是实际告警触发后b组团队并没有收到电话告警,日志提示no sender vioce。
查看了这块的代码,在处理订阅告警时只会通过handleNotice去处理,这个里面只会使用script和plugin的方式,
因为所有告警都会post到webhook,所以这块订阅是不会添加这个了吗,大概我理解这两个是隔离的告警处理应用。

// notify.go
func notify(event *models.AlertCurEvent) {
	LogEvent(event, "notify")

	notice := genNotice(event)
	stdinBytes, err := json.Marshal(notice)
	if err != nil {
		logger.Errorf("event_notify: failed to marshal notice: %v", err)
		return
	}

	alertingRedisPub(event.Cluster, stdinBytes)
	alertingWebhook(event)

	handleNotice(notice, stdinBytes)

	// handle alert subscribes
	subs, has := memsto.AlertSubscribeCache.Get(event.RuleId)
	if has {
		handleSubscribes(*event, subs)
	}

	subs, has = memsto.AlertSubscribeCache.Get(0)
	if has {
		handleSubscribes(*event, subs)
	}
}
3 Answers

你是哪个版本?我记得v6里可以在订阅规则里配置webhook

升级吧

v5.15.0,那看样子直接升级就完事了

图片.png
图片.png
我的v6 ga.6版本的,配置订阅规则也是no sender for channel: info,并不会走全局的webhook,搞不懂为什么这样设计?

图片.png
图片.png
必须在订阅规则的回调地址中再添加全局的webhook地址才行