1、根据标签进行匹配,获取的值是那一瞬间的值
= :根据label进行匹配。匹配device为/dev/mapper/centos_test-root的时间序列
node_filesystem_avail_bytes{device="/dev/mapper/centos_test-root"}
!= :正则,不等于
node_filesystem_avail_bytes{device!="/dev/mapper/centos_test-root"}
~ :label=~regx,正则匹配。匹配挂载点为/boot、/、/run的时间序列
node_filesystem_avail_bytes{mountpoint=~"/boot|/|/run"}
~! :非。匹配除了挂载点为/boot、/、/run的时间序列
node_filesystem_avail_bytes{mountpoint=~!"/boot|/|/run"}
2、查询一定时间范围内的数据
[]: 时间范围选择.查看1分钟内所有时间点的剩余内存(这个时间点是由prometheus抓取数据的频率决定,这里定义的是每15秒抓取一次数据)
node_memory_MemFree_bytes{}[1m]
时间单位有:
s - 秒
m - 分钟
h - 小时
d - 天
w - 周
y - 年
3、查询之前某个时间点的数据,也是瞬时向量
offset:位移操作符,metric{label=value} offset 1d。查询1分钟前的剩余内存
node_memory_MemFree_bytes{} offset 1m
4、数学运算符
+ (加法)
- (减法)
* (乘法)
/ (除法)
% (求余)
^ (幂运算)
5、布尔运算
== (相等)
!= (不相等)
> (大于)
< (小于)
>= (大于等于)
<= (小于等于)
布尔操作符,改变运算行为,使结果输出为1或0,符合运算就输出0,否则输出1
metric{label=value} > bool 100
6、集合运算符
vector1 and vector2
vector1 or vector2
vector1 unless vector2
7、操作符优先级
1、^
2、*, /, %
3、+, -
4、==, !=, <=, <, >=, >
5、and, unless
6、or
8、promQL聚合操作
sum (求和)
min (最小值)
max (最大值)
avg (平均值)
stddev (标准差)
stdvar (标准方差)
count (计数)
count_values (对value进行计数)
bottomk (后n条时序)
topk (前n条时序)
quantile (分位数)
9、PromQL内置函数,请查看官网。