赞
踩
PromQL是prometheus内置的数据查询语言,我们知道,Prometheus本质是内置了一个时序数据库,通过对抓取的指标数据存储到数据库中,然后再grafana等web端进行回放历史数据
PromQL广泛应用于以Prometheus的监控体系中,只要用到数据的过滤、筛选,就要用PromQL来实现,我们的监控指标获取、告警指标设置、rules等都要通过它来实现
类型一: instant vector 即时向量,也称为瞬时向量
表示当前时刻的数据,一组时间序列数据,共享相同的时间戳
案例: node_cpu_seconds_total
类型二:range vector 范围向量,也称为区间向量
表示某一个时间范围内的数据
案例: node_cpu_seconds_total[5m]
类型三:scalar 简单数据,一个简单的数字浮点值
简单数据没有时间属性,每个时间点的数值都一致。
案例:插叙CPU使用的时间,所有标签的个数等
类型四:字符串值 尚未使用
= 相等
!= 不等
=~ 正则匹配
!~ 选择与提供的字符串不匹配
案例:
node_cpu_seconds_total{cpu="0"}
node_cpu_seconds_total{cpu!="0"}
node_cpu_seconds_total{cpu="0",mode=~"i.*"}
node_cpu_seconds_total{cpu="0",mode!~"i.*"}
#与常识中的数值比较相同
==
!=
>
<
>=
<=
案例:
node_cpu_seconds_total == 0
node_cpu_seconds_total != 0node_cpu_seconds_total>0
node_cpu_seconds_total>=0
and 与
or 或
unless 非
+
-*
/
%
bool
案例一:
node_cpu_seconds_total> 20 #返回大于20的指标
node_cpu_seconds_total> bool 20 #大于20的返回1,小于20返回0
sum: 求和汇总
increase 求增长
count: 计数
min: 最小
max: 最大
avg: 平均
topk: 取前面几个较大的值
bottomk: 取后面几个较小的值
rate: 平均每秒增长率
irate: 每秒瞬时增长率
ceil: 向上取整
floor: 向下取整
sort: 从小到大排序
sort_desc: 从大到小排序
4.1 求CPU第一个核内核态在使用时间上过去一分钟的增长量
4.2 计算第一个核内核态的使用时间在过去一分钟内每秒的平均增速
4.3 计算CPU第一个核心在内核态过去一分钟的每秒瞬时增长率
4.4 向上取整 ceil
向下取整 floor
四舍五入round
4.5 排序 sort 以及sort_desc
4.6 取值
topk
bottomk
rate和irate的区别
rate是取指定时间范围内的指标数据,然后计算平均值,例如1分钟,按照15秒抓取一次,然后会有2个指标,然后计算平均值。这种计算方式容易陷入“长尾问题”,无法反应突出的变化,适用于缓慢变化的计数器
irate是通过指定时间范围内的最后2个样本指标来计算区间的增长率,反应的是瞬时的变化,可以比较好的反应样本的瞬时状态的变化,适用于快速变化的计数器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。