长时间使用rate
函数(例如7d
)时,出现错误"query processing would load too many samples into memory in query execution"
。
我的查询是
histogram_quantile(0.90, rate(http_request_in_seconds_bucket[7d]))
答案 0 :(得分:0)
发生此错误是因为Prometheus具有a limit of samples可以在内存中处理。
我通过added on Prometheus 2.7子查询解决了这个问题。 这样,您可以分别查询较小的时间间隔,然后将它们汇总在一起。
例如,我将查询更改为多个24小时子查询,然后将其平均在一起
histogram_quantile(0.90, avg_over_time(rate(http_request_in_seconds_bucket[24h])[7d:12h]))
还有其他解决方案:
query.max-samples
(不推荐)来增加它可以处理的样本数量