Bootstrap

Prometheus 内置函数(二)

changes()

对于每个输入时间序列数据, 将返回其值在所提供的时间范围内更改的次数作为即时向量。

# 如果样本数据值没有发生变化,则返回结果为 0
changes(node_load5{instance="10.32.50.24"}[1m]) # 结果为 0

clamp()

将所有元素的样本值钳制在v下限为min和上限为max。

特殊情况: - 返回空向量 if min > max - 返回NaNifmin或maxisNaN

clamp_max()

函数,输入一个瞬时向量和最大值,样本数据值若大于 max,则改为 max,否则不变。例如:

node_load5{instance="10.32.50.24"} # 结果为 2.79
clamp_max(node_load5{instance="10.32.50.24"}, 2) # 结果为 2

clamp_min()

函数,输入一个瞬时向量和最小值,样本数据值若小于 min,则改为 min,否则不变。例如:

node_load5{instance="10.32.50.24"} # 结果为 2.79
clamp_min(node_load5{instance="10.32.50.24"}, 3) # 结果为 3

day_of_month()

函数,返回被给定 UTC 时间所在月的第几天。返回值范围:1~31。

day_of_week()

函数,返回被给定 UTC 时间所在周的第几天。返回值范围:0~6,0 表示星期天。

day_of_week(node_load5{instance="10.32.58.24"})
# 值是 4,当前是周六。

days_in_month()

函数,返回当月一共有多少天。返回值范围:28~31。

days_in_month(node_load5{instance="10.32.58.24"})
# 值是 31 ,因为是 10 月。

delta()

的参数是一个区间向量,返回一个瞬时向量。它计算一个区间向量 v 的第一个元素和最后一个元素之间的差值。由于这个值被外推到指定的整个时间范围,所以即使样本值都是整数,你仍然可能会得到一个非整数值。

例如,下面的例子返回过去一小时的 CPU 5 分钟负载的差:

delta(node_load5[1h])

这个函数一般只用在 Gauge 类型的时间序列上。

deriv()

的参数是一个区间向量,返回一个瞬时向量。它使用简单的线性回归计算区间向量 v 中各个时间序列的导数。

这个函数一般只用在 Gauge 类型的时间序列上。

deriv(node_load5[1h])

exp()

函数,输入一个瞬时向量,返回各个样本值的 e 的指数值,即 e 的 N 次方。当 N 的值足够大时会返回 +Inf。特殊情况为:

Exp(+Inf) = +Inf

Exp(NaN) = NaN

floor()

函数与 函数相反,将 v 中所有元素的样本值向下四舍五入到最接近的整数。也就是去尾法。

node_load5{instance="10.23.50.24"} # 结果为 2.65
ceil(node_load5{instance="10.23.50.24"}) # 结果为 2