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.free 和 server.test_server.disk.used 的两个单独的表中?在这种情况下,首选方法是使用这种表server.test_server.disk,其中包含两个指标(“已使用”和“免费”)。然后你就可以做这样的事情了:
select first(used / (used + free)) from "server.test_server.disk"
【讨论】:
以上是关于influxdb中的多系列查询的主要内容,如果未能解决你的问题,请参考以下文章