常用函数
数据类型
Prometheus 提供度量的四种基本数据类型为 Counter,Gauge,Histogram,Summary。
Counter 类似,记录只增长,不减少的指标。比如 CPU 时间片,API 访问总数等;
Gauge 类型,记录可增长,可减少的指标。比如内存使用率,CPU 使用率等;
Histogram 类型,记录指标的分布情况,并且提供度量指标的总和;
Summary 类型,和 Histogram 类似,主要用于计算在一定时间窗口范围内度量指标对象的总数以及所有对量指标值的总和。
常用函数
文档地址:https://prometheus.io/docs/prometheus/latest/querying/functions/
rate
rate()函数是专门搭配 Counter 数据类型使用的,提取 Counter 在某个时间段中每秒的增量。
例如:
yaml
rate(node_network_receive_bytes_total{device="eth0"}[1m])
increase
increase()函数用于提取某个时间段中数据的增量,比较粗粒度。
例如:
yaml
increase(node_network_receive_bytes_total{device="eth0"}[1m])
sum
sum()函数就是用于求和。
例如:
yaml
sum(rate(node_network_receive_bytes_total{device="eth0"}[1m]))
注意:默认情况下,sum 是将所有服务器监控的数据进行求和,如果要看某一台就需要拆分,常见的拆分方法如下:
- by increase()
- by (cluster_name) 属于自定义标签不是标准标签,我们可以手动将不同功能的服务器进行分组展示
topk
topk()函数用于取前面 x 位的最高值。
Gauge 类型使用方式:
yaml
topk(3,key)
Counter 类型使用方式:
yaml
topk(3,rate(key[1m]))
count
count()函数用于计数,当前或者历史数据中某个 key 的数值大于或小于某个值的统计;
例如:
yaml
count(node_netstat_Tcp_CurrEstab >180)
irate
irate()函数用于计算范围中时间序列的每秒即时增长率。
例如:
yaml
irate(http_requests_total{job="api-server"}[5m])