Grafana 8.2上周发布了,我们很高兴地宣布其新功能之一:联络点测试。现在Grafana 8警报的用户可以直接从联络点页面测试他们的联络点。这项功能使配置Grafana 8警报更容易,并使你有信心知道你的联络点在发射前按预期工作。
以下是基本情况:
联系点包含零个或多个联系点类型(即电子邮件、Slack、webhook等)的配置,这些联系点在警报发射时接收通知。一个联络点不限于只有一个联络点类型,可以有多个联络点类型:

当你为新的和现有的联络点创建或更新联络点类型时,你会注意到在Grafana 8.2中,我们在复制和删除按钮的旁边增加了一个新的测试按钮:

当测试按钮被点击时,Grafana会创建一个名为TestAlert的警报,并为这个警报向联络点类型发送通知。这里的重要区别是,与Grafana 8.1和更早的版本不同,联络点不需要被保存或分配给一个或多个通知策略来进行测试。
如果联络点类型是有效的,并且通知的发送没有错误,用户界面将显示一个绿色的成功对话,并显示 "测试警报已发送 "的信息:

然而,如果联络点不包含有效的配置,或者通知不能被发送到联络点,用户界面将显示一个红色的错误对话,并附有错误信息 "发送测试警报失败":

还有一个API端点,可以用来测试联络点:
POST /api/alertmanager/grafana/config/api/v1/receivers/test
该端点接受包含接收者列的JSON,其格式与我们向api/alertmanager/grafana/config/api/v1/alerts发出POST请求时的格式相同:
{
"receivers": [{
"name": "contact-point-1",
"grafana_managed_receiver_configs": [{
"name": "alertmanager",
"type": "prometheus-alertmanager",
"settings": {
"url": "http://127.0.0.1:9093"
}
}, {
"name": "email",
"type": "email",
"settings": {
"addresses": "example@example.com"
}
}]
}]
}
API会返回一个HTTP 200 OK响应,其中包含被测试的接收者列表(名称和UID)。通知中包括一个时间戳,以区分连续的测试:
{
"notified_at": "2021-01-01T00:00:00Z",
"receivers": [{
"name": "contact-point-1",
"grafana_managed_receiver_configs": [{
"name": "alertmanager",
"uid": "uid1",
"status": "ok"
}, {
"name": "email",
"uid": "uid2",
"status": "ok"
}]
}]
}
如果一个接收器成功地发送了通知,它将包含一个带有 "ok "的状态字段。如果一个接收器失败了--无论是由于错误的配置还是一个短暂的错误--它将包含一个带有 "失败 "的状态字段和一个带有信息的错误字段:
{
"notified_at": "2021-01-01T00:00:00Z",
"receivers": [{
"name": "alertmanager",
"grafana_managed_receiver_configs": [{
"name": "alertmanager",
"uid": "uid1",
"status": "ok"
}, {
"name": "email",
"uid": "uid2",
"status": "failed",
"error": "SMTP is not configured"
}]
}]
}
所有的接触点都是平行测试的(一次最多10个),默认的超时时间为15秒,最多可以配置到30秒。
试试吧!
联系点测试在Grafana 8.2和Grafana Cloud中都可用。设置新的Grafana Cloud实例的用户将可以使用最新版本的Grafana和这个功能。关于接触点和Grafana 8警报的更多信息,可以在这里的官方文档中找到。