Prometheus有大量的内置函数,下面就总结一下这些内置函数的使用。
abs() :abs(v instant-vector) 返回返回值的绝对值。
absent():absent(v instant-vector)有返回值则会返回no data,无返回值则返回1。
ceil():ceil(v instant-vector)将指标的返回值向上取为整数。
floor():floor(v instant-vector)将指标的返回值向下取为整数。
changes():changes(v range-vector)在一个时间区间内变化的次数,如果没变就是1。
clamp_max():clamp_max(v instant-vector, max scalar)如果返回值大于max scalar 则返回max scalar。
clamp_min():clamp_min(v instant-vector, min scalar)如果返回值小于min scalar 则返回min scalar。
day_of_month():day_of_month(v=vector(time()) instant-vector)返回给定的某天。
delta():delta(v range-vector)计算一段时间内第一个值跟最后一个值的差值。这个函数一般只用在 Gauge 类型的时间序列上。delta(meta_used{instance=~".*:19200", nodename=",lotus_gw11,"}[3h])
deriv():deriv(v range-vector)计算一段时间内值的导数。这个函数一般只用在 Gauge 类型的时间序列上。
exp():exp(v instant-vector)返回样本值的e的指数值。
histogram_quantile():histogram_quantile(φ float, b instant-vector)
holt_winters():holt_winters(v range-vector, sf scalar, tf scalar)计算趋势,生成时间序列数据平滑值,sf越低对旧数据越重视,tf越高对数据的趋势的考虑越多。这个函数一般只用在 Gauge 类型的时间序列上。
idelta():idelta(v range-vector)返回给定时间范围内的最新的两个值的差值,这个函数一般只用在 Gauge 类型的时间序列上。
increase():increase(v range-vector),返回区间内第一个和最后一个值的增量。
(99-meta_used{instance=~".*:19205",nodename=",a,"})/(increase(meta_used{instance=~".*:19205", nodename=",a,"}[16h])/16)
irate():irate(v range-vector),返回区间内最后两个值的增长率。(irate变化快,rate适用于变化慢的场景)。
label_join():label_join(v instant-vector, dst_label string, separator string, src_label_1 string, src_label_2 string, ...),可以将多个标签加起来产生新标签。
label_join(meta_used{instance=~".*:19205", nodename=",a,"},"new_label","_","instance","job","_","exported_nodename")
lable_replace():(v instant-vector, dst_label string, replacement string, src_label string, regex string),可以添加额外的标签。
label_replace(meta_used{instance=~".*:19205", nodename=",a,"},"extra_label","$1","instance","(.*):(.*)")
log2、log10():log2(v instant-vector),作对数处理.
timestamp():timestamp(v instant-vector),返回时间戳。
time():time(),返回时间戳,秒数。
predict_linear():predict_linear(v range-vector, t scalar),可以基于线性回归根据给定的时间区间,计算出变化趋势,只返回标签列表。
sqrt():sqrt(v instant-vector),将所有返回值进行平方根计算。
_over_time():
以下函数允许聚合给定范围向量的每个系列随时间的变化并返回具有每系列聚合结果的即时向量:
avg_over_time(range-vector): 范围向量内每个度量指标的平均值。
min_over_time(range-vector): 范围向量内每个度量指标的最小值。
max_over_time(range-vector): 范围向量内每个度量指标的最大值。
sum_over_time(range-vector): 范围向量内每个度量指标的求和值。
count_over_time(range-vector): 范围向量内每个度量指标的样本数据个数。
quantile_over_time(scalar, range-vector): 范围向量内每个度量指标的样本数据值分位数,φ-quantile (0 ≤ φ ≤ 1)
stddev_over_time(range-vector): 范围向量内每个度量指标的总体标准偏差。
stdvar_over_time(range-vector): 范围向量内每个度量指标的总体标准方差。
请注意,即使值在整个时间间隔内的间隔不均匀,指定时间间隔内的所有值在聚合中都具有相同的权重。