Grafana:警报查询中不支持模板变量

Dan*_*nko 7 grafana grafana-alerts

嗨,我想在grafana中创建一个简单的警报,以检查最近5分钟是否没有数据。

但我得到一个错误

警报查询中不支持模板变量

好吧,根据这个问题,grafana还不支持模板。我有两个问题:

  1. 模板是什么?

  2. 如何避免此错误?

在此处输入图片说明

ruh*_*ong 18

在 Metrics 选项卡下,添加将隐藏在图表中并仅用于警报的新指标。复制查询并$somevar从中删除所有模板变量(即)。将模板变量替换为要为其创建警报的硬编码值。通过单击“眼睛”图标隐藏指标。

来源:https : //community.grafana.com/t/template-variables-are-not-supported-in-alert-queries-while-setting-up-alert/2514/8


小智 7

这意味着您必须在查询中使用硬编码变量。

不好

where host =~ /^$host$/
Run Code Online (Sandbox Code Playgroud)

很好

where host =~ mymachine.com
Run Code Online (Sandbox Code Playgroud)

您的问题位于您的指标内部。


Bil*_*fri 6

creatig警报时不要在Grafana中使用模板,因为它不支持警报中的模板。

尝试对整个公式进行硬编码,然后尝试一下。

在简单的语言中,请勿使用您在顶部的模板部分中定义的下拉或模板变量

当您不想一次又一次使用公式时,模板用于动态仪表板。您可以重复在模板变量中选择的每个值的图形

  • 它表示使用下拉菜单选择的变量,并在查询中使用它。有关模板的更多信息,请访问http://docs.grafana.org/reference/templating/ (2认同)

小智 6

关于您的屏幕截图,您正在使用条件

WHEN last() of query(A,5m,now) HAS NO VALUE
Run Code Online (Sandbox Code Playgroud)

所以部分

query(A,5m,now)
Run Code Online (Sandbox Code Playgroud)

正在重用“指标”选项卡中的查询,如果您在此查询中使用变量,则警报将报告此错误

看看这个简单的查询:

up{job="node_exporter", instance="$instance"}
Run Code Online (Sandbox Code Playgroud)

在这里,我想使用用户从下拉菜单中选择的 VM 名称作为实例,该名称由变量 $instance 表示

如果我在此查询上创建警报,则会收到错误消息 Template variables are not supported in alert queries