Prometheus常用的函数
2.3.1 increase
increase函数:
用来针对counter数据类型,截取其中一段时间总的增量。
举个例子:
increase(node_cpu_seconds_total{mode="idle",cpu="0", instance="10.0.0.42:9100"}[1m])
统计1分钟内,使用标签过滤器查看"10.0.0.42:9100"节点的第0颗CPU,空闲状态使用的总时间增量。
2.3.2 sum
sum函数:
加和的作用。
举个例子:
sum(increase(node_cpu_seconds_total{mode="idle",cpu="0"}[1m]))
统计1分钟内,使用标签过滤器查看所有节点的第0颗CPU,空闲状态使用的总时间增量,并将返回结果累加。
2.3.3 by
by函数:
将数据进行分组,类似于MySQL的"GROUP BY"。
举个例子:
sum(increase(node_cpu_seconds_total{mode="idle",cpu="0"}[1m])) by (instance)
统计1分钟内,使用标签过滤器查看第0颗CPU空闲状态,并将结果进行累加,基于instance进行分组。
2.3.4 rate
rate函数:
它的功能是按照设置的时间段,取counter在这个时间段中平均每秒的增量。
举个例子:
rate(node_cpu_seconds_total{mode="idle",cpu="0", instance="10.0.0.42:9100"}[1m])
统计1分钟内,使用标签过滤器查看"10.0.0.42:9100"节点的第0颗CPU,空闲状态使用的每秒的增量。
increase和rate如何选择:
(1)对于采集数据频率较低的场景建议使用increase函数,因为使用rate函数可能会出现断点,比如针对硬盘容量监控。
(2)对于采集数据频率较高的场景建议使用rate函数,比如针对CPU,内存,网络流量等都是可以基于rate函数来采集等。
2.3.5 topk
topk函数:
取前几位的最高值,实际使用的时候一般会用该函数进行瞬时报警,而不是为了观察曲线图。
举个例子:
topk(3, rate(node_cpu_seconds_total{mode="idle",cpu="0"}[1m]))
统计1分钟内,使用标签过滤器查看第0颗CPU,所有状态使用的每秒的增量,只查看前3个节点。
2.3.6 count
count函数:
把数值符合条件的,输出数目进行累加加和,一般用它进行一些某户的监控判断。
比如说企业中有100台服务器,如果只有10台服务器CPU使用率高于80%时候是不需要报警的,但是数量操作70台时就需要报警了。
举个例子:
count(oldboyedu_tcp_wait_conn > 500):
假设oldboyedu_tcp_wait_conn是咱们自定义的KEY。
若TCP等待数量大于500的机器数量就判断条件为真。
count(rate(node_cpu_seconds_total{cpu="0",mode="idle"}[1m]))
对统计的结果进行计数。
2.3.7 其他函数
推荐阅读:
https://prometheus.io/docs/prometheus/latest/querying/functions/
欢迎来撩 : 汇总all