Prometheus指标

1 指标类型

prometheus的指标有四种类型,分别是Counter,Gauge,Histogram,Summary。

  • Counter
    只增不减的计数器,用于描述某个指标的累计状态,比如请求量统计,http_requests_total

  • Gauge
    可增可减的计量器,用于描述某个指标当前的状态,比如系统内存余量,node_memory_MemFree_bytes

  • Histogram
    直方图指标用于描述指标的分布情况,比如对于请求响应时间,总共10w个请求,小于10ms的有5w个,9小于50ms的有9w个,小于100ms的有9.9w个

  • Summary
    和直方图类似,summary也是用于描述指标分布情况,不过表现形式不同,比如还是对于请求响应时间,summary描述则是,总共10w个请求,50%小于10ms,90%小于50ms,99%小于100ms

    Histogram的使用场景会比较多一些,因为对服务端资源需求更少,但是在查询时histogram的资源消耗会比summary相对于更多。其实也就是summary把资源消耗转移到了服务端,指标的分布数据是计算好再导出的。

2 常用聚合函数

sum 求和
min 最小值
max 最大值
avg 平均值
stddev 标准差
stdvar 方差
count 统计元素数量
count_values 统计等于某个值的元素数量
bottomk 最小的k个元素
topk 最大的k个元素
quantile 元素分布的分位数

以上这些聚合函数使用时,有些可以针对所有指标做聚合,有些还可以指定以某个label做聚合,也可以去掉某个label后做聚合,

假如我们以hostname为粒度,统计各个hostname的请求数量,

sum by (hostname) (http_requests_total)

如果统计时,不想关注请求状态码,可以忽略该label后做聚合

sum without(statu_code) (http_requests_total)

3 常用函数

  • absent()
    用于检查某个指标是否缺失,缺失时返回1,比如查询myjob是否启动,当myjob存在时,返回空,不存在时返回1
absent(job="myjob")
  • delta()
    返回指定时间段的差值,取的是第一个和最后一个值,不管中间的数据
delta(http_requests_total{job="myjob"}[1h]) 
  • histogram_quantile()
    计算histogram指标的分布情况,比如计算90%数据指标分布线
histogram_quantile(0.9, sum by (job, le) (rate(http_request_duration_seconds_bucket[10m])))

而聚合函数quantile()一般计算的是gauge指标的分布,比如计算100机器的90%内存使用分布,

quantile(0.9, node_memory_MemFree_bytes)

也可以理解为,histogram_quantile的操作对象是针对node_memory_MemFree_bytes聚合后的histogram数据,

  • rate() and irate()
    都是用于计算元素变化速率,irate取的是在指定时间范围内的最近两个数据点,而rate则是取指定时间范围内所有数据点做平均,所以irate常用于变化快的指标,rate则用于缓慢变化的指标,这样指标才不容易失真
rate(http_requests_total{job="myjob"}[1m])
irate(http_requests_total{job="myjob"}[1m])

参考文档:

  1. https://prometheus.io/docs/prometheus/latest/querying/operators/
  2. https://prometheus.io/docs/prometheus/latest/querying/functions/
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值