0

在范围向量上应用 avg() 是什么意思,例如:

avg(meric_name[1d]) 

根据此处的文档,它仅在即时向量上运行。metric_name[1d] 返回一个范围向量。此查询仍然在范围向量上运行并返回结果,而不会抱怨错误。

4

2 回答 2

0

这会正确返回解析错误:

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看到自己

所以我怀疑你正在运行不同的查询。

于 2021-02-22T08:19:50.043 回答
0

正如 Brian 已经指出的那样,该avg(m[d])查询在 Prometheus 中不起作用,因为这是有效的MetricsQL查询并且是无效的 PromQL 查询。

VictoriaMetrics 自动将avg(m[d])查询转换为avg(last_over_time(m[d])). 返回每个返回数据点的持续时间的last_over_time(m[d])最后一个原始值。然后计算结果时间序列的平均值。mdavg(...)

如果这些差距超过传递给/api/v1/query_range的值,该last_over_time()函数可用于覆盖时间序列数据中的差距。step

在MetricsQL 文档中查看有关last_over_time()函数的更多详细信息。

于 2021-02-23T10:24:12.130 回答