时间序列
node_cpu_guest_seconds_total{cpu="0"}
#{}外的是监控项(指标数据)
#{}内的是标签
#node使用cpu的描述统计,符合标签cpu=0的时间序列,查询出的结果
#指标项+标签就是Prometheus的时间序列
_address_
#双下划线标签是Prometheus系统的默认标签,不显示在页面上,只有把光标移动到字段上才会显示
node_cpu_seconds_total{mode="iowait",cpu="0"}
#查看状态时iowait的且cpu是0的数据
匹配标签值的操作符
=
#表示完全相等
!
#表示不等于,取反
=~
#正则表达式匹配
!~
#正则表达式取反
数学运算符:
+
#加法
-
#减法
*
#乘法
/
#除法
%
#取余
^
#幂运算
通配符:
.
#任意单个字符
.*
#任意多个字符
.+
#一个或多个任意字符
时长的单位:
s
#seconds 秒
m
#minutes 分
h
#hour 小时
d
#day 天
w
#weeks 周
y
#years 年
数据类型
1、 瞬时向量:表示一组时序,每个时序只有单独的一个采量值
node_cpu_seconds_total{mode="iowait",cpu="0"}
2、 区间向量:表示一组时序,每个时序包含一段时间内的多个采样值。具有时间范围
rate(container_cpu_load_average_10s{instance="node01"}[5m])
#展示container_cpu_load_average_10s指标过去每5分钟的采样值。对应的标签是instance="node01"
3、 标量数据:表示浮点数
4、 字符串类型:表示一个字符串
5、 counter类型:表示一个总数。promql语句当中没有直接作用,借助一些函数,rate topk increase irate通过这些函数来生成样本数据的变化情况。
topk(3,node_cpu_seconds_total)
#_total:一般表示counter类型的数据
#展示当前数据中排名前3的数据
increase:要结合区间向量一起使用,时间序列在一定范围内的增量
increase(node_cpu_seconds_total[5m])
#5分钟之内增量的趋势
irate:是高灵敏度函