InfluxDB查询到PromQL

时间:2020-10-09 21:05:35

标签: prometheus promql

我需要将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)

1 个答案:

答案 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_timediskio_weighted_io_time的毫秒转换为秒。

Prometheus通过传递给/api/v1/query_range Prometheus查询API处理程序的startend args接受查询的时间范围,因此上述查询没有按时过滤。