在范围向量上应用 avg() 是什么意思,例如:
avg(meric_name[1d])
根据此处的文档,它仅在即时向量上运行。metric_name[1d] 返回一个范围向量。此查询仍然在范围向量上运行并返回结果,而不会抱怨错误。
在范围向量上应用 avg() 是什么意思,例如:
avg(meric_name[1d])
根据此处的文档,它仅在即时向量上运行。metric_name[1d] 返回一个范围向量。此查询仍然在范围向量上运行并返回结果,而不会抱怨错误。
这会正确返回解析错误:
Error executing query: invalid parameter "query": 1:5: parse error: expected type instant vector in aggregation expression, got range vector
您可以在http://demo.robustperception.io:9090/graph?g0.expr=avg(meric_name%5B1d%5D)%20&g0.tab=1&g0.stacked=0&g0.range_input=1h看到自己
所以我怀疑你正在运行不同的查询。
正如 Brian 已经指出的那样,该avg(m[d])
查询在 Prometheus 中不起作用,因为这是有效的MetricsQL查询并且是无效的 PromQL 查询。
VictoriaMetrics 自动将avg(m[d])
查询转换为avg(last_over_time(m[d]))
. 返回每个返回数据点的持续时间的last_over_time(m[d])
最后一个原始值。然后计算结果时间序列的平均值。m
d
avg(...)
如果这些差距超过传递给/api/v1/query_range的值,该last_over_time()
函数可用于覆盖时间序列数据中的差距。step
在MetricsQL 文档中查看有关last_over_time()
函数的更多详细信息。