You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana Webhook联系人点中使用告警的instance作为URL

解决Grafana Webhook中动态引用告警instance变量的问题

错误原因

你遇到的template::1:function "instance" not defined错误,是因为直接用{{instance}}的写法不对——instance不是全局模板函数,而是告警对象里的标签字段,必须从告警上下文的正确层级中引用。

正确的模板语法

Grafana告警触发时会传递包含告警详情的上下文对象,instance字段属于告警的Labels集合,需要通过以下方式引用:

单条告警场景(大多数情况)

如果你的告警是针对单个实例触发的,直接在Webhook URL中使用:

http://{{ $alert.Labels.instance }}/your-stop-consume-endpoint

比如你的应用停止消费的接口是/stop-kafka-consume,就写成:

http://{{ $alert.Labels.instance }}/stop-kafka-consume

告警组(多条告警批量触发)场景

如果是多个实例的告警被打包成组触发,需要遍历告警列表获取每个instance:

http://{{ range $alert := .Alerts }}{{ $alert.Labels.instance }}{{ end }}/your-endpoint

不过这种场景下Webhook URL只能对应一个地址,建议确保告警规则按单个instance触发,避免批量组的问题。

验证变量存在性

在Grafana告警规则的预览告警功能里,可以查看告警的JSON结构,确认Labels下确实包含instance字段,比如:

{
"alerts": [
{
"labels": {
"instance": "10.0.0.5:8080",
"alertname": "KafkaErrorRateHigh"
},
...
}
]
}

注意事项

  • 不需要自定义函数,Grafana内置的告警模板上下文已经包含这些变量,只要引用层级正确即可。
  • 确保instance标签的格式符合URL要求(比如包含端口号,如果应用的Webhook接口不是默认80/443端口的话)。

内容的提问来源于stack exchange,提问作者Nol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:27:04