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台告警

_over_time()
以下函数允许聚合给定范围向量的每个系列随时间的变化并返回具有每系列聚合结果的即时向量:

avg_over_time(range-vector): 范围向量内每个度量指标的平均值。
min_over_time(range-vector): 范围向量内每个度量指标的最小值。
max_over_time(range-vector): 范围向量内每个度量指标的最大值。
sum_over_time(range-vector): 范围向量内每个度量指标的求和值。
count_over_time(range-vector): 范围向量内每个度量指标的样本数据个数。
quantile_over_time(scalar, range-vector): 范围向量内每个度量指标的样本数据值分位数,φ-quantile (0 ≤ φ ≤ 1)
stddev_over_time(range-vector): 范围向量内每个度量指标的总体标准偏差。
`stdvar_over_time(range-vector): 范围向量内每个度量指标的总体标准方差。

eg:
该主机1天内node_load5的最大值
max_over_time (node_load5{instance="1.1.1.1:9100"}[24h])

1h内的内存使用率 100 * (1 - ((avg_over_time(node_memory_MemFree_bytes[1h]) + avg_over_time(node_memory_Cached_bytes[1h]) + avg_over_time(node_memory_Buffers_bytes[1h])) / avg_over_time(node_memory_MemTotal_bytes[1h]))) 

promql 常用函数介绍的更多相关文章

  1. [MFC美化] SkinMagic使用详解2- SkinMagic常用函数介绍

    SkinMagic常用函数介绍 (1)InitSkinMagicLib函数:初始化SkinMagic int InitSkinMagicLib( //初始化SkinMagic工具库 HINSTANCE ...

  2. MySQL常用函数介绍

    MySQL常用函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作符介绍 1>.操作符优先级 mysql; +----------+ | +----------+ ...

  3. go语言之进阶篇字符串操作常用函数介绍

    下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...

  4. MySQL 常用函数介绍

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  5. SQL SERVER系统表和常用函数介绍

    sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项s ...

  6. (转)postgis常用函数介绍(一)

    http://blog.csdn.net/gisshixisheng/article/details/47701237 概述: 在进行地理信息系统开发的过程中,常用的空间数据库有esri的sde,po ...

  7. 性能测试基础-开门篇3(LR常用函数介绍)

    LR常用的函数,协议不一样函数会不一样,这里简单的介绍下HTTP\WEBSERVICE\SOCKET协议常用函数: HTTP: web_set_max_html_param_len("102 ...

  8. Python数据分析--Numpy常用函数介绍(2)

    摘要:本篇我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数.学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算,来学习NumPy的常用函数. ...

  9. (转)postgis常用函数介绍(二)

    http://blog.csdn.net/gisshixisheng/article/details/47903151 概述: 书接上文,本文继续讲解Postgres中常用的空间函数的使用. 常用函数 ...

随机推荐

  1. hbase部署

    Hbase: 更细的操作和原理研究笔记和视频 cloudera Hbase:https://sysit.cn/blog/post/sysit/cloudera%E5%AE%89%E8%A3%85HBA ...

  2. shell下的 awk/sed/grep/seq/tr

    转自:实例手册 https://github.com/liquanzhou/ops_doc/blob/master/shell%E5%AE%9E%E4%BE%8B%E6%89%8B%E5%86%8C. ...

  3. window下的php命令行输出汉字乱码处理

    1. 在php的代码中加入 header("content-type:text/html;charset=gbk"); 2. 设置命令行的字体 在命令行上右击属性 字体 选择如下字 ...

  4. Python字符串和正则表达式中的反斜杠('\')问题

    在Python普通字符串中 在Python中,我们用'\'来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defg ...

  5. php中use关键词使用场景

    php中use关键词使用场景,主要使用在函数内部使用外包得变量才使用得 1,这种函数使用不到外包变量 $messge="96net.com.cn"; $exam=function ...

  6. php文件上传客户端限制和服务器端限制

    客户端限制 1,通过表单隐藏域限制文件上传文件的最大值<input type='hidden' name='MAX_FILE_SIZE' VALUE='字节数' />通过accept属性限 ...

  7. visual studio git 忽略文件配置模板

    ## Ignore Visual Studio temporary files, build results, and## files generated by popular Visual Stud ...

  8. Jquery复习(三)之链式调用

    通过 jQuery,可以把动作/方法链接在一起. Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上). jQuery 方法链接 直到现在,我们都是一次写一条 jQue ...

  9. fullpage实现(-)

    在线demo还没弄好,地址先给出来

  10. SpringBoot项目中遇到的BUG

    1.启动项目的时候报错 1.Error starting ApplicationContext. To display the auto-configuration report re-run you ...