繁体   English   中英

如何仅在白天在Prometheus中获得一段时间内的平均值

[英]How to get the average over time only during the day in Prometheus

我目前正在尝试通过以下查询获取上个月的RAM平均使用率:

100 - ((avg_over_time(node_memory_MemAvailable_bytes{instance="...",job="..."}[4w]) * 100) / node_memory_MemTotal_bytes{instance="...",job="..."})

该查询正常运行,但是现在我想过滤掉夜间收集的值,以便获得白天的实际使用百分比:是否有可能获得仅在上午8点到下午8点之间收集的值的平均值?晚上8点?

提前致谢 !

马蒂亚斯

由于您不能有一个有空洞的范围(例如,过去4周,但只有8 AM至8 PM),因此您需要创建一条记录规则,仅记录一天中的可用内存,然后在时间序列中计算avg_over_time由所述规则产生。

规则比较容易建立

node_memory_MemAvailable_bytes
  and 
hour(timestamp(node_memory_MemAvailable_bytes)) >= 8
  and 
hour(timestamp(node_memory_MemAvailable_bytes)) < 20

但最初没有任何历史记录,因此您必须等待几天,然后才能从中获取任何有意义的数据。 另请注意,此表达式将过滤UTC 8 AM和8 PM UTC之间的样本。 您可能需要将其调整为您的时区。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM