在Grafana中从InfluxDB中获取一共两列数据

Obtaining a total of two series of data from InfluxDB in Grafana

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

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

合并文档需要如下内容:

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

这也是一条平坦的零线。

我希望我的问题有一定的分量,因为我的知识还不足以尽可能好地传达问题。

谢谢。

在 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

使用 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

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

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