根据 Grafana 中的变量值显示或隐藏查询结果

Show or hide query result depending on variable value in Grafana

我正在尝试 show/hide 根据仪表板变量 值在图表面板上查询

动机。

在同一个图表面板(用于显示多个主机)上,我有两个查询:

rate(ClickHouseProfileEvents_Query{instance=~"$instance"}[$__rate_interval])

并且:

max_over_time( (irate(ClickHouseProfileEvents_Query{instance=~"$instance"}[2m]))[$__rate_interval:15s] )

其中 ClickHouseProfileEvents_Query 是计数器。

第一个是通常的比率,更适合显示趋势,另一个稍微复杂一些,但显示所有选择.当然,我想为图表制作一个面板,但也有一些开关,如 trends/picks 来分析两者。我引入了一个带有自定义值的 grafana 仪表板变量,但我不明白如何使用它来隐藏或显示特定查询。

此外,我尝试使用 orunless 之类的东西进行单个查询,但没有成功。

环境:Grafana v7.5.2,Prometheus v2.26.0

更新:

感谢Marcelo Ávila de Oliveira for 。我目前的解决方案有点不同,但基于他的想法。

首先,我添加类型为 Custom 的变量,其值为 1null.

其次,我在查询中使用乘法而不是除法。

最后,例如,当我关闭趋势显示时,我也没有在图表和图例中看到它们

  • 创建一个具有 2 个值的自定义变量:0 和 1

  • 将要控制的查询除以变量

  • 选择“ 1”时,显示所有查询

  • 选择“ 0”查询,您添加了划分

我只想指出,您甚至可以使用一个变量过滤多个查询,例如,如果您有 3 个查询:

query1 * ($var % 2)
query2 * ($var % 3)
query3 * ($var % 5)

Value for $var ALL: 1
Value for $var only select query1 : 15
Value for $var only select query2 : 10
Value for $var only select query3 : 6

适用于无限查询,但数字会变大(对于 4 个查询也有 % 7:105 (2), 70 (3) , 126 (5) ,120 (7)),但我认为你不应该无论如何,一个仪表板中的查询不会超过 4-5 个。

残差域救赎;-)

除了马塞洛的答案,而不是除以零。有一个二进制 operator or and and 在 Prometheus 中,它的作用类似于 disable/enable 查询按钮。

或 -> 并集 AND -> 交集

因此,当我们在实际查询和某个字符串之间应用 OR 运算符时,它将按原样查询,而使用 AND 运算符时,它将与某个字符串相交,这将导致没有结果。

使用 Grafana 7.3.0 或以上版本。

[=51定义自定义变量=] 自定义值。

show : or 表示 label : value for variable

添加 $variable_name 作为查询的后缀或前缀以及一个自定义字符串。

显示 时,它将显示图表以及图例。 在下图中寻找 sum 在右侧 table 和图表求和图例查询。

隐藏时,将完全隐藏图形和图例文本。 下图中sum隐藏在右侧table和对应的图形中。