繁体   English   中英

influxdb / Flux 查询:从标签中获取顶部

[英]influxdb / Flux query : get a top from tag

我正在尝试通过通量查询从标签 (hdd_id) 中获取前 5 名,这是一个关于一天内性能的时间序列(粒度 1 分钟)

从此 csv 导入的数据:567819 行和 150 hdd_id ~

#datatype measurement,tag,tag,double,double,double,dateTime:number
HDD,server,hdd_id,Read_IOPS,Write_IOPS,Read_ms,time
HDD,srv1,hdd1,35,33,1,1671233940
HDD,srv1,hdd1,24,69,1,1671234000
HDD,srv1,hdd1,97,57,2,1671234060
HDD,srv1,hdd1,30,78,2,1671234120
HDD,srv1,hdd1,53,83,2,1671234180
HDD,srv1,hdd1,56,85,2,1671234240
HDD,srv1,hdd1,32,25,22,1671234300
HDD,srv1,hdd1,29,89,6,1671234360
HDD,srv1,hdd1,33,41,1,1671234420
HDD,srv1,hdd1,22,15,8,1671234480
HDD,srv1,hdd1,24,95,4,1671234540
…
HDD,srv1,hdd2,35,33,1,1671233940
HDD,srv1,hdd2,24,69,1,1671234000
HDD,srv1,hdd2,97,57,2,1671234060
HDD,srv1,hdd2,30,78,2,1671234120
HDD,srv1,hdd2,53,83,2,1671234180
HDD,srv1,hdd2,56,85,2,1671234240
HDD,srv1,hdd2,32,25,22,1671234300
HDD,srv1,hdd2,29,89,6,1671234360
HDD,srv1,hdd2,33,41,1,1671234420
HDD,srv1,hdd2,22,15,8,1671234480
HDD,srv1,hdd2,24,95,4,1671234540
…
HDD,srv1,hdd3,35,33,1,1671233940
HDD,srv1,hdd3,24,69,1,1671234000
HDD,srv1,hdd3,97,57,2,1671234060
HDD,srv1,hdd3,30,78,2,1671234120
HDD,srv1,hdd3,53,83,2,1671234180
HDD,srv1,hdd3,56,85,2,1671234240
HDD,srv1,hdd3,32,25,22,1671234300
HDD,srv1,hdd3,29,89,6,1671234360
HDD,srv1,hdd3,33,41,1,1671234420
HDD,srv1,hdd3,22,15,8,1671234480
HDD,srv1,hdd3,24,95,4,1671234540
…

我的查询没有成功:

from(bucket: v.bucket)
range(start: v.timeRangeStart, stop: v.timeRangeStop)
filter(fn: (r) => r[“_measurement”] == “HDD”)
filter(fn: (r) => r[“_field”] == “Read_IOPS” or r[“_field”] == “hdd_id”)
highestAverage(n:top, column: “Read_IOPS”, groupColumns: [“hdd_id”])

例如,我想获得具有最高 Read_IOPS 的 hdd_id 的前 5 名。

怎么了?

我的 csv/measurement 是否正确构建以执行此类查询?

非常感谢您的帮助。

hdd_id是一个标签而不是一个字段。 因此你不需要过滤它。

你能试试下面的语句吗:

from(bucket: v.bucket)
range(start: v.timeRangeStart, stop: v.timeRangeStop)
filter(fn: (r) => r[“_measurement”] == “HDD”)
highestAverage(n:5, column: “Read_IOPS”, groupColumns: [“hdd_id”])

我尝试使用此查询,但显示的是 grafana 上的表格。

在时间序列中得到这个缺少什么?

from(bucket: v.bucket)
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "HDD")
|> filter(fn: (r) => r.server== "${srv}") //grafana variable
|> drop(columns: ["server"])
|> filter(fn: (r) => r.hdd_id != "")
|> filter(fn: (r) => r._field == "Read_IOPS")
|> aggregateWindow(every: v.windowPeriod, fn: mean)
|> highestAverage(n:5,groupColumns: ["hdd_id"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM