完整译文请访问:http://www.coderdocument.com/docs/prometheus/v2.14/prometheus/querying/functions.html。
有些函数有默认参数,例如year(v=vector(time()) instant-vector)
。这意味着有一个参数v
是一个瞬时向量,如果不提供参数v
,则其默认值为 vector(time())
。
abs()
abs(v instant-vector)
将输入向量中的所有采样值转换为绝对值,并返回输入向量。
absent()
absent(v instant-vector)
如果传递给它的向量有元素,则返回一个空向量;如果传递给它的向量没有元素,则返回一个包含一个值为1
的元素的向量。
这对于在指定指标名称和标签都的时间序列不存在时发出告警非常有用。
absent(nonexistent{job="myjob"})
# => {job="myjob"}
absent(nonexistent{job="myjob",instance=~".*"})
# => {job="myjob"}
absent(sum(nonexistent{job="myjob"}))
# => {}
在第二个示例中,absent()
试图巧妙地根据输入向量派生出包含1个元素的输出向量的标签。
ceil()
ceil(v instant-vector)
将v
中所有元素的采样值四舍五入为最接近的整数。
changes()
对于每个输入时间序列,changes(v range-vector)
以瞬时向量的形式返回其值在指定时间范围内更改的次数。
clamp_max()
clamp_max(v instant-vector, max scalar)
,输入为一瞬时向量v
和一个最大值标量max
,对于向量v
中的每一个采样值,如果采样值大于max
,则把采样值替换为max
,反之则不进行替换。
clamp_min()
clamp_min(v instant-vector, min scalar)
,输入为一瞬时向量v
和一个最小值标量min
,对于向量v
中的每一个采样值,如果采样值小于min
,则把采样值替换为min
,反之则不进行替换。
day_of_month()
day_of_month(v=vector(time()) instant-vector)
返回指定的UTC时间的日期(一个月)。返回值从1到31。
day_of_week()
day_of_week(v=vector(time()) instant-vector)
返回指定的UTC时间的日期(一周)。返回的值从0到6,其中0表示星期天,等等。
days_in_month()
days_in_month(v=vector(time()) instant-vector)
返回每一个指定的UTC时间所属性月份的天数。返回值从28到31。
delta()
delta(v range-vector)
计算范围向量v
中每个时间序列元素的第一个和最后一个值之间的差值,返回带有指定增量和相同标签的瞬时向量。增量覆盖范围向量选择器中指定的整个时间范围,这样就可以得到非整数结果,即使采样值都是整数。
下面的示例表达式返回CPU温度从现在到2小时前的差异:
delta(cpu_temp_celsius{host="zeus"}[2h])
delta
只能用于gauge。
deriv()
deriv(v range-vector)
使用简单线性回归计算时间序列在范围向量v
中的二阶导数。
deriv
只能用于gauge。
exp()
exp(v instant-vector)
计算v
中所有元素的e的指数,即en,特殊情况为:
Exp(+Inf) = +Inf
Exp(NaN) = NaN
floor()
floor(v instant-vector)
将v
中所有元素的采样值向下取整为最接近的整数。
完整译文请访问:http://www.coderdocument.com/docs/prometheus/v2.14/prometheus/querying/functions.html。