数据类型

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在某个时间段中每秒的增量。
例如:

  1. rate(node_network_receive_bytes_total{device="eth0"}[1m])

increase

increase()函数用于提取某个时间段中数据的增量,比较粗粒度。
例如:

  1. increase(node_network_receive_bytes_total{device="eth0"}[1m])

sum

sum()函数就是用于求和。
例如:

  1. sum(rate(node_network_receive_bytes_total{device="eth0"}[1m]))

注意:默认情况下,sum是将所有服务器监控的数据进行求和,如果要看某一台就需要拆分,常见的拆分方法如下:

  • by increase()
  • by (cluster_name) 属于自定义标签不是标准标签,我们可以手动将不同功能的服务器进行分组展示

topk

topk()函数用于取前面x位的最高值。

Gauge类型使用方式:

  1. topk(3,key)

Counter类型使用方式:

  1. topk(3,rate(key[1m]))

count

count()函数用于计数,当前或者历史数据中某个key的数值大于或小于某个值的统计;
例如:

  1. count(node_netstat_Tcp_CurrEstab >180)

irate

irate()函数用于计算范围中时间序列的每秒即时增长率。
例如:

  1. irate(http_requests_total{job="api-server"}[5m])