首页 > 其他 > 详细

promql 常用函数介绍

时间:2019-06-27 22:00:27      阅读:397      评论:0      收藏:0      [点我收藏+]

Metrics类型

根据不同监控指标之间的差异,Prometheus定义了4中不同的指标类型(metric type):Counter(计数器)、Gauge(仪表盘)、Histogram(直方图)、Summary(摘要)。
最常用的两种数据类型:

  1. counter:此类型的指标其工作方式和计数器一样,只增不减(除非系统发生重置)。例如 node_cpu_seconds_total{mode="idle"} cpu空闲时间。
  2. Gauge:用于反应该样本的当前状态,该样本数可增可减。例如可用内存大小。
    较难理解的两种数据类型:
  3. Histogram与Summary:都是比例型的数值,统计数据的分布情况,如最小值,最大值,中间值,中位数,75百分位,90百分位,95百分位,98百分位,99百分位和99.9百分位(percentiles),近似于百分比估算数值。两种区别在于summary分位数是客户端计算上报,histogram中位数涉及服务端计算。
    此处Http_response_time来解释此类型数据:
    http请求响应时间:一次用户http请求在系统传输和执行过程中总共花费的时间,nginx的access_log有一列就为此时间。
    需求:抓取某个业务当天access_log,并监控用户的访问时间,如何操作?
    方案1:所有请求访问时间总和求平均值 假如当天100w次访问平均值为0.05s
    情景1: 假如当天发生线上故障:中午1:00 - 1:05,整体用户请求响应时间0.5-1s。此种方案无法反映此段故障。
    情景2: 慢请求,有一小部分用户由于程序bug,或系统或其他原因,请求响应时间比平均值大很多,甚至5s,10s 。此种方案也无法反应此情况。
    方案2:基于Histogram的metrics类型(prometheus提供了一个基于Histogram算法的函数可供直接使用)分别统计出各段响应时间的用户:
    ~=0.0.5s 的请求数 , 0~0.05s的请求数 ,>2s的请求数 ,>10s的请求数

函数介绍

以下两个函数都用于counter类型数据
increase( )
eg:某一分钟cpu使用时间 increase()[1m]=该分钟末cpu使用时间-该分钟初cpu使用时间

rate()
eg:某一分钟cpu使用率 rate()[1m]=某一分钟cpu使用时间/60s
即 rate()=increase( )/60s

topk(3,rate(监控项(表达式))) 可用于监控单核cpu使用率前3 > xxx告警

sum() by ()
将某表达式查出的所有数据相加即为sum(), 再将相加的值通过某个特性进行分组,即为 sum() by()
例如监控某台主机(非单核)的cpu使用率

count()
对于满足某个表达式的监控项进行计数
eg: cpu使用率大于80%的服务器超过30台告警

promql 常用函数介绍

原文:https://www.cnblogs.com/huandada/p/11099593.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!