首页 > 解决方案 > 将 PromQL 'sum(rate(value))' 查询转换为 InfluxQL

问题描述

我正在创建一个自定义 k8s grafana 仪表板,其数据源为 InfluxDB (v1.8.6)。我浏览了 influxdb 文档并认识到prometheus rate() influx 的类比构造是non_negative_derivative(mean(value), interval)。但是在尝试将 prometheus 查询转换为 InfluxQL 时,结果查询值在针对相同时间间隔执行时会有所不同。我基本上是在尝试计算 k8s 集群网络 i/o 压力。

PromQL

sum (rate (container_network_receive_bytes_total{kubernetes_io_hostname=~"^$Node$", job="kubernetes-nodes-cadvisor"}[1m]))

输出以字节为单位:7321180

涌入QL

SELECT SUM(bytes_used) FROM (SELECT non_negative_derivative(mean(value), 1s) AS bytes_used FROM container_network_receive_bytes_total WHERE ("job" = 'kubernetes-nodes-cadvisor' AND "kubernetes_io_hostname" =~ /^$Node$/) AND $timeFilter GROUP BY time(1m)) group by time($__interval)

输出以 Mb/s 为单位:36.7 MB/s

有人可以帮助确定问题并纠正我吗?

标签: kubernetesprometheusmonitoringinfluxdbinfluxql

解决方案


推荐阅读