[英]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.