PromQL (Prometheus Query Language) 是 Prometheus 自己开发的数据查询 DSL 语言,语言表现力非常丰富,内置函数很多,在日常数据可视化以及rule 告警中都会使用到它。
在页面 http://localhost:9090/graph 中,输入下面的查询语句,查看结果,例如:
prometheus_http_requests_total{code="200"}
 
查询结果类型
PromQL 查询结果主要有 3 种类型:
瞬时数据 (Instant vector): 包含一组时序,每个时序只有一个点,例如:prometheus_http_requests_total
区间数据 (Range vector): 包含一组时序,每个时序有多个点,例如:prometheus_http_requests_total[5m]
纯量数据 (Scalar): 纯量只有一个数字,没有时序,例如:count(prometheus_http_requests_total)
 
查询条件
Prometheus 存储的是时序数据,而它的时序是由名字和一组标签构成的,其实名字也可以写出标签的形式,例如 prometheus_http_requests_total 等价于 {name="http_requests_total"}。
一个简单的查询相当于是对各种标签的筛选,例如:
http_requests_total{code="200"} // 表示查询名字为 http_requests_total,code 为 "200" 的数据
 
查询条件支持正则匹配,例如:
prometheus_http_requests_total{code!="200"}  // 表示查询 code 不为 "200" 的数据
prometheus_http_requests_total{code=~"2.."} // 表示查询 code 为 "2xx" 的数据
prometheus_http_requests_total{code!~"2.."} // 表示查询 code 不为 "2xx" 的数据
 
内置函数
Prometheus 内置不少函数,方便查询以及数据格式化,例如将结果由浮点数转为整数的 floor 和 ceil,
floor(avg(prometheus_http_requests_total{code="200"}))
ceil(avgprometheus_(http_requests_total{code="200"}))
查看 prometheus_http_requests_total 5分钟内,平均每秒数据
rate(prometheus_http_requests_total[5m])
 
rate 与irate 区别:
irate和rate都会用于计算某个指标在一定时间间隔内的变化速率。但是它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。
所以官网文档说:irate适合快速变化的计数器(counter),而rate适合缓慢变化的计数器(counter)。 

最新文章

  1. 关于call和apply函数的区别及用法
  2. [WPF系列]-数据邦定之DataTemplate 使用 DataTrigger 来应用属性值
  3. Ubuntu 设置当前用户sudo免密码
  4. maven创建子项目(适用于多模块管理项目)
  5. [转]Spring注解原理的详细剖析与实现
  6. java 笔记(3) —— 动态代理,静态代理,cglib代理
  7. 反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
  8. Linux发展史
  9. HTML5中的Range对象的研究(转载)
  10. Linux开发工具之gcc
  11. 使用sae定时执行Python脚本
  12. BZOJ 2761 不重复数字 (Hash)
  13. sql 日结
  14. Problem B: 点之间的距离
  15. 【Android 系统开发】Android JNI 之 JNIEnv 解析
  16. JAVA---MYSQL 基本知识点 第一部分
  17. SQL Server 2000服务器安装剖析
  18. Postman导出Api文档
  19. mysql 开发进阶篇系列 6 锁问题(事务与隔离级别介绍)
  20. 编码标准:ASCII、GBK、Unicode(UTF8、UTF16、UTF32)

热门文章

  1. Robot Framework 常见问题处理方式
  2. 【Python】Python实现Excel用例直接导入testlink-UI界面小工具
  3. HDU 4012 Paint on a Wall(状压+bfs)
  4. 项目使用Kafka镜像报错处理记录:this server does not host this topic-partition
  5. k3 cloud中提示总账期末结账提示过滤条件太长,请修改此过滤条件
  6. AI-Tensorflow-神经网络优化算法-梯度下降算法-学习率
  7. Prometheus + Grafana
  8. python实战-有道翻译
  9. python tkinter的Label
  10. spark大数据快速分析第二章