我有这两个录制规则,它们是有效的:
- 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])
当我尝试将相同的表达式直接输入普罗米修斯时(例如,在Grafana中),意味着我输入avg_over_time(sum(rate(promhttp_metric_handler_requests_total[5m]))[10m])
,普罗米修斯告诉我:
Error executing query: invalid parameter "query": 1:68: parse error: ranges only allowed for vector selectors
为什么会这样呢?我的误解在哪里?出于测试目的,我想直接输入给定的表达式,而不使用记录规则,因为我需要过去三周的数据,并且记录规则将从头开始收集数据,尽管数据已经被监控。
发布于 2021-02-12 23:10:42
我通过反复试验找到了一个解决方案。据我所知,记录规则将数据保存为范围向量,avg_over_time()和rate()需要将其作为数据类型。不过,我在Grafana中输入的语句会产生即时向量,因此存在不匹配的情况。输入avg_over_time(sum(rate(promhttp_metric_handler_requests_total5m:15s))10m:15s)就解决了这个问题,因为现在它们是范围向量
https://stackoverflow.com/questions/66153636
复制相似问题