【问题标题】:Filter complex metric in grafana在 grafana 中过滤复杂指标
【发布时间】:2016-08-23 10:29:31
【问题描述】:

是否可以从 grafana 中的复杂指标中过滤值? 例如:

SELECT sum(one) + sum(two) FROM "table" WHERE $timeFilter GROUP BY time($interval)

我只需要显示正数sum(one) + sum(two) > 0

在 sql 中,我会使用别名和 HAVING 子句,例如:

SELECT sum(one) + sum(two) AS S FROM "table" WHERE $timeFilter GROUP BY time($interval) HAVING S > 0

但是,这在 grafana 中不起作用。 如何在不在后端数据库中创建新的 sum 列的情况下实现此结果?

[编辑]:我的 grafana GUI 如下所示:

点击“笔”按钮后:

【问题讨论】:

  • 请指定您使用的 Grafana 版本。

标签: influxdb grafana


【解决方案1】:

截至 2016 年 8 月,HAVING clause 在 InfluxDB 中尚不可用,因此如果不使用连续查询来创建中间系列,则无法直接在 InfluxDB 中找到 sum(one) + sum(two) > 0 的所有点。

但是,Grafana 允许设置最小 y 轴值,这意味着不会显示任何负值。

希望有帮助!

【讨论】:

    【解决方案2】:

    这只是您问题的一部分,但我能够在 grafana+influxdb 数据源中执行以下操作:

    如果>0,则选择一个值的总和。

    问题是不可能在一个查询中选择两个不同的值。但也许您可以在一张图中使用两个查询来解决这个问题。

    【讨论】:

    • 这看起来不像我在 grafana 中看到的那样 =\ 添加了我的 GUI 的一些屏幕截图。另外我认为我不清楚我的问题:我必须过滤两个时间序列的总和。所以结果应该是sum(one) + sum(two) > 0,而不仅仅是sum(one) > 0
    • 是的,您尝试对两个总和进行加法是不可能的。您还应该考虑更新到新版本
    • 等等,我可以显示sum(one) + sum(two),但找不到只显示该曲线的积极部分的方法
    • @MaxPY 你的意思是这样的?:SELECT "value" FROM "one","two" WHERE "value" > 0
    • 更新:这行得通吗? SELECT sum("value") FROM "one","two" WHERE "value" > 0
    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2013-05-09
    • 2021-07-09
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多