我需要将InfluxDB查询转换为PromQL,请提供帮助。这些是请求: https://github.com/influxdata/telegraf/tree/master/plugins/inputs/diskio
计算每个磁盘和主机的IO利用率百分比:
SELECT non_negative_derivative(last("io_time"),1ms) FROM "diskio" WHERE time > now() - 30m GROUP BY "host","name",time(60s)
计算平均队列深度:iops_in_progress将为您提供 瞬时值。这将为您提供两次轮询之间的平均值 间隔。
SELECT non_negative_derivative(last("weighted_io_time"),1ms) from "diskio" WHERE time > now() - 30m GROUP BY "host","name",time(60s)
答案 0 :(得分:1)
假设this conversion scheme is used for converting InfluxDB data to Prometheus data,以下PromQL查询应该可以工作:
max(rate(diskio_io_time[60s])/1000) by (host, name)
max(rate(diskio_weighted_io_time[60s])/1000) by (host, name)
需要用1000
除以将相应时间序列-diskio_io_time
和diskio_weighted_io_time
的毫秒转换为秒。
Prometheus通过传递给/api/v1/query_range Prometheus查询API处理程序的start
和end
args接受查询的时间范围,因此上述查询没有按时过滤。