PromQL语句不工作,而相同的记录规则



我有以下两条记录规则:

- record: job:sum_rate
expr: sum(rate(promhttp_metric_handler_requests_total[5m]))
- record: job:sum_rate:avg_over_time
expr: avg_over_time(job:sum_rate[10m])

当我尝试直接在Prometheus中输入相同的表达式时(例如在Grafana中),这意味着我输入avg_over_time(sum(rate(promhttp_metric_handler_requests_total[5m]))[10m]), Prometheus告诉我:

Error executing query: invalid parameter "query": 1:68: parse error: ranges only allowed for vector selectors

为什么?我的误解在哪里?出于测试目的,我想直接输入给定的表达式,而不需要记录规则,因为我需要最近三周的数据,而记录规则将从头开始收集数据,尽管数据已经被监视了。

我通过反复试验找到了一个解决方案。根据我的理解,记录规则将数据保存为范围向量,avg_over_time()和rate()需要作为数据类型。我在Grafana中输入的语句产生了即时向量,因此存在不匹配。输入avg_over_time(sum(rate(promhttp_metric_handler_requests_total[5m:15s]))[10m:15s])解决了问题,因为现在这些是范围向量

最新更新