当前位置: 首页 > 知识库问答 >
问题:

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

洪浩
2023-03-14

我试图根据仪表板变量值在图形面板上显示/隐藏查询。

动机

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

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

和:

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

其中ClickHouseProfileEvents_Query是一个计数器。

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

此外,我还尝试使用等工具进行单个查询,除非,但未成功。

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

更新:

感谢马塞洛·奥维拉的回答。我目前的解决方案有点不同,但基于他的想法。

首先,我添加值为1null的typeCustom变量

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

最后,结果是,当我关闭,例如,趋势显示时,我在图表和图例中也看不到它们。


共有3个答案

廖君昊
2023-03-14

我只想指出,您甚至可以使用一个变量过滤多个查询,例如,如果您有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

适用于无限查询,但数量会越来越大(对于同时包含%7:105(2)、70(3)、126(5)、120(7)的4个查询),但我认为一个仪表板中的查询不应该超过4-5个。

剩余场拯救;-)

乜安志
2023-03-14

除了马塞洛的回答,而不是除以零。Prometheus中有一个二进制运算符或和,它的作用类似于禁用/启用查询按钮。

或-

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

使用Grafana 7.3.0或更高版本。

使用or和和自定义值定义自定义变量。

显示:或表示变量的标签:值

缑赤岩
2023-03-14
  • 创建具有2个值的自定义变量:0和1
  • 将要控制的查询除以变量
  • 当选择1时,所有查询都会显示
  • 选择“0”时,您添加的查询将隐藏分区
 类似资料:
  • 问题内容: 创建保存的过程时,可以创建一些变量吗?例如: 问题:但是如何从查询中设置变量结果,即如何进行如下设置: ? 问题答案: 有多种方法可以做到这一点。 您可以使用子查询: (就像您的原始文章一样,只需在查询周围添加括号) 或使用SELECT INTO语法分配多个值: 子查询语法稍微快一些(我不知道为什么),但是只能分配一个值。select into语法允许您一次设置多个值,因此,如果需要从

  • 问题内容: 是否可以根据MySQL中的查询结果设置用户变量? 我想要实现的是这样的事情(我们可以假设和都是唯一的): 请注意,我知道有可能,但我不希望使用嵌套查询。 问题答案: 是的,但是您需要将变量分配移至查询中: 测试用例: 结果: 请注意,对于,或可用作分配运算符。但是,在其他语句中,赋值运算符必须为并且不是,因为在非SET语句中将其视为比较运算符。 更新: 除了下面的评论,您还可以执行以下

  • 问题内容: 我在网上搜索了很多主题,这些主题讨论了会话变量以及如何通过Ajax从Javacript中获取它们。但是,尽管我已经能够做到这一点,但这并不能完全解决我的问题。 目的 在线提供在线库存管理。 约束条件 只有经过身份验证的用户才能管理在线库存 库存管理控件对未经身份验证的用户是隐藏的 每个部分都必须独立地获得认证通知,以便相应地显示/隐藏其控件 代码样本 authenticate.php

  • 问题内容: 我想根据变量是否为null显示/隐藏div。 注意:在我的情况下,变量是一个对象。 这是一个非常简单的问题,但我似乎无法使其正常工作。 谢谢。 问题答案: 需要澄清的是,上面的示例确实有效,示例中的代码由于不相关的原因而无法正常工作。 如果myvar为false,null或之前从未使用过(即从未调用过$ scope.myvar或$ rootScope.myvar),则div将不会显示。

  • 问题内容: 我第一次弄乱React.js,找不到通过click事件在页面上显示或隐藏内容的方法。我没有在页面上加载任何其他库,所以我正在寻找使用React库的本机方法。到目前为止,这就是我所拥有的。当点击事件触发时,我想显示结果div。 问题答案: 大约在2020年做出反应 在回调中,调用状态挂钩的 setter函数以更新状态并重新渲染: JSFiddle 反应约2014年 关键是使用来更新点击处

  • 问题内容: 我一段时间以来一直在寻找解决方案…我试图根据添加到Woocommerce结帐页面上的单选按钮选项来显示或隐藏特定的运费。但是我对Ajax&JQuery并不需要任何了解。 基本上,如果用户选择单选 选项_1 ,它将仅显示“ flat_rate:1 ”和“ flat_rate:2 ”。如果用户选择单选 选项_2 ,它将仅显示“ flat_rate:3 ”和“ flat_rate:4 ” 这