【问题标题】:Obtaining a total of two series of data from InfluxDB in Grafana在 Grafana 中从 InfluxDB 中获取一共两个系列的数据
【发布时间】:2015-11-30 11:21:54
【问题描述】:

在这一点上我很困惑。我花了一三天时间深入研究 Influx 和 Grafana,以绘制一些对我的需求至关重要的图表。但是,对于最后一个,我需要总计两个指标(两个增量计数,在列值中)。我们称它们为notifications.one 和notifications.two。在我希望它们显示的图表中,它可以很好地作为两者的总和,一条图表线,显示 (notifications.one + notifications.two) 而不是两个单独的。

我尝试使用通常的SELECT sum(value) from 两者,但我没有从中获得任何数据(确实存在!)。 Influx 的文档中也提到了 merge(),但我也无法让它工作。

合并的文档需要如下内容:

SELECT mean(value) FROM /notifications.*/ WHERE ...

这也是一个平坦的零线。

我希望我的问题具有一定的分量,因为我还远远没有足够的知识来尽可能好地传达这个问题。

谢谢。

【问题讨论】:

  • 您忽略了您使用的 InfluxDB 版本。 MERGE 仅适用于 0.8 和更早的版本。它在 0.9 中不存在。
  • 嗨,我做到了,我很抱歉。我们使用的是 0.9,我想这意味着我不能将两个系列合并到一个图中?感谢您的信息。

标签: metrics influxdb statsd grafana


【解决方案1】:

使用 InfluxDB 0.12,您可以编写:

SELECT MEAN(usage_system) + MEAN(usage_user) + MEAN(usage_irq) AS cpu_total 
  FROM cpu
  WHERE time > now() - 10s 
  GROUP BY host;

这些功能尚未真正记录在案,但您可以查看支持的mathematical operators

【讨论】:

  • 你知道当值来自相同的测量时是否有办法做到这一点? IE。使用 WHERE 子句根据标签值选择两个系列,然后添加/减去那些?您上面的命令似乎需要多次测量。
  • @meowsqueak 这需要Meta Querieslong term roadmap 上。最近该功能已从 5.0 里程碑中删除,因此很难判断何时可用。
【解决方案2】:

在 InfluxDB 0.9 中,无法跨测量合并查询结果。默认情况下,在测量中合并所有系列,但不能跨测量合并任何系列。详情请参阅https://influxdb.com/docs/v0.9/concepts/08_vs_09.html#joins

更好的 0.9 架构不是两个测量值:notifications.onenotifications.two,有一个测量值 notificationsfoo=onefoo=two 作为单个测量值的标签。那么合并值的查询就是SELECT MEAN(value) FROM notifications,然后每个系列的查询就是SELECT MEAN(value) FROM notifications GROUP BY foo

【讨论】:

  • 谢谢,我将您的回复标记为正确,因为这似乎是一种合乎逻辑的方法。它会为我工作。我想它也可以清理一些东西。最初我不知道 0.8 和 0.9 有这种区别(我通常会尽量避开旧文档)。
【解决方案3】:

我认为根据问题,可以将查询组合在一起,就像 RDBMS 中的嵌套查询一样。这可以使用 influxdb 中的连续查询来实现。本文档清楚地解释了它。 基本上你需要从其他查询中创建一个查询,然后使用这个新创建的查询来获取系列。

https://docs.influxdata.com/influxdb/v1.1/query_language/continuous_queries/#substituting-for-nested-functions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    相关资源
    最近更新 更多