[英]Prometheus query promql to make average on the same field
On my prometheus database, I have got metrics from three different host, I want to make the average between them, like that I can make aggreagation :在我的普罗米修斯数据库中,我从三个不同的主机获得了指标,我想在它们之间求平均值,这样我就可以进行聚合:
information{application=~"$app",access=~"$access",quantile="0.99", host="prom01"}
information{application=~"$app",access=~"$access",quantile="0.99", host="prom02"}
information{application=~"$app",access=~"$access",quantile="0.99", host="prom03"}
I try to sum those three metrics and sub by three on the only query command, like that :我尝试在唯一的查询命令上对这三个指标求和,然后再乘以三个,如下所示:
(information{application=~"$app",access=~"$access",quantile="0.99", host="prom01"} +
information{application=~"$app",access=~"$access",quantile="0.99", host="prom02"} +
information{application=~"$app",access=~"$access",quantile="0.99", host="prom03"})/3
but it does not work<但它不起作用<
Moreover, I try the sum + rate, does not work also此外,我尝试了 sum + rate,也不起作用
sum by (host) (rate(information{application=~"$app",access=~"$access",quantile="0.99"})[5m])
You can do the following:您可以执行以下操作:
(scalar(information{application=~"$app",access=~"$access",quantile="0.99", host="prom01"}) +
scalar(information{application=~"$app",access=~"$access",quantile="0.99", host="prom02"}) +
scalar(information{application=~"$app",access=~"$access",quantile="0.99", host="prom03"})
) / 3
but it's easier if you do:但如果你这样做会更容易:
(sum(information{application=~"$app",access=~"$access",quantile="0.99", host=~"prom0(1|2|3)"}))
) / 3
Or simply:或者干脆:
avg(information{application=~"$app",access=~"$access",quantile="0.99", host=~"prom0(1|2|3)"})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.