influxdb中的多系列查询

Posted

技术标签:

【中文标题】influxdb中的多系列查询【英文标题】:Multi-series query in influxdb 【发布时间】:2016-05-11 00:53:25 【问题描述】:

我对 influxdb 很陌生。我正在使用石墨编写器向它提交收集的指标

对于磁盘统计信息,我想做一个百分比转换,并在 grafana 仪表板上显示。

disk.used / (disk.used + disk.free)

我在摆弄类似的东西(这显然不起作用):

从 "server.test_server.disk.used" 中选择 first(disk.used / (disk.used + disk.free)) 作为使用 left join "server.test_server.disk.free" 作为 free where ....

我可以使用什么查询?是否可以使用 influxdb 进行此类转换?这对石墨来说太容易了:(

更新:使用 grafana 2.1 和 influxdb 0.9

【问题讨论】:

【参考方案1】:

您的架构对于 InfluxDB 0.9 不是最佳的。您可以进行许多测量,每个测量只有几个系列,而不是每个测量包含多个子系列。

InfluxDB 0.9 中没有 JOIN,但相同度量下的所有系列会自动合并,除非被标签过滤。请参阅https://docs.influxdata.com/influxdb/v0.9/query_language/data_exploration/ 和https://docs.influxdata.com/influxdb/v0.9/concepts/08_vs_09/#joins 了解更多信息。

为了充分利用 InfluxDB 0.9,您应该在标签中编码元数据“test_server”,并将指标编码为单独的字段。另见Obtaining a total of two series of data from InfluxDB in Grafana

【讨论】:

【参考方案2】:

是的,这是可能的,但是您能描述一下您想要拥有的整个架构和结果数据吗?做一个:

select * from "server.test_server.disk"

并给我们输出。或者您是否将它放在名为 server.test_server.disk.freeserver.test_server.disk.used 的两个单独的表中?在这种情况下,首选方法是使用这种表server.test_server.disk,其中包含两个指标(“已使用”和“免费”)。然后你就可以做这样的事情了:

select first(used / (used + free)) from "server.test_server.disk" 

【讨论】:

以上是关于influxdb中的多系列查询的主要内容,如果未能解决你的问题,请参考以下文章

InfluxDB:来自多个系列的查询

使用替换字段值查询后将系列转储回 InfluxDB

InfluxDb 中的系列和存储桶是啥

左连接 influxDB

如何获取InfluxDB系列的基本名称列表?

influxdb 中的查询和高级操作