在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.one
和 notifications.two
,将一个测量值 notifications
与 foo=one
和 foo=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 中的连续查询来实现。这个文档解释得很清楚。
基本上您需要从其他查询创建一个查询,然后使用这个新创建的查询来获取系列。
此时我很困惑。我在 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.one
和 notifications.two
,将一个测量值 notifications
与 foo=one
和 foo=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 中的连续查询来实现。这个文档解释得很清楚。 基本上您需要从其他查询创建一个查询,然后使用这个新创建的查询来获取系列。