登录
首页 >  Golang >  Go问答

如何计算Prometheus过去N小时的平均值

来源:stackoverflow

时间:2024-03-09 20:18:26 306浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《如何计算Prometheus过去N小时的平均值》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

在 prometheus 中,我想计算一段时间内此特定功率指标 (dell_hw_chassis_power_reading) 的总平均值。例如,最近 2 小时。

我目前正在使用以下查询:

sum(avg_over_time(dell_hw_chassis_power_reading[2h])) by (node,instance)

此查询似乎只提供查询中指定的 2 小时间隔内的最新值。它没有给出 2 小时内该指标所有抓取的总平均值。


正确答案


查询 avg_over_time(dell_hw_chassis_power_reading[2h]) 返回过去 2 小时 prometheus 中存储的原始样本的平均值。如果 prometheus 包含多个名称为 dell_hw_chassis_power_reading 的时间序列,则查询将返回每个匹配时间序列的独立平均值。

如果要计算名称为 dell_hw_chassis_power_reading 的所有时间序列的平均值,则必须使用以下查询:

sum(sum_over_time(dell_hw_chassis_power_reading[2h]))
  /
sum(count_over_time(dell_hw_chassis_power_reading[2h]))

如果您需要某个标签或一组标签的平均值,则必须使用以下查询:

sum(sum_over_time(dell_hw_chassis_power_reading[2h])) by (labels)
  /
sum(count_over_time(dell_hw_chassis_power_reading[2h])) by (labels)

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>