prometheus 循环遍历范围或即时向量的值并应用函数

rad*_*dio 6 loops function operators prometheus promql

假设我有一个返回范围或即时向量的 promQL:范围向量 ->metric[1h]或实例向量 ->increase(metric[1h])

有没有办法将范围转换为即时向量和/或反之亦然?因为许多数学运算/函数只能在即时向量上进行。

如果无法进行转换,有没有办法对范围向量的每个值应用某个操作或函数?例如(值的平方):

(7 @1554105600, 5 @1554710400, 2 @1555315200, 12 @1555920000) 变成

(49 @1554105600, 25 @1554710400, 4 @1555315200, 144 @1555920000)

mar*_*lex 0

范围选择器:可以应用于函数的结果。
例如:

max_over_time( sqrt(node_cpu_seconds_total)[1m:])
Run Code Online (Sandbox Code Playgroud)

[1m:]是分辨率未指定的范围选择器。:在这里至关重要,因为它允许将范围选择器应用于向量选择器之外的其他东西,其中 simple[1m]会产生错误:

仅允许向量选择器的范围

在线演示可以在这里查看。