惜风不起、唯有努力!
Prometheus-PromQL常用函数

Prometheus-PromQL常用函数

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内置函数,请查看官网。

发表回复

您的电子邮箱地址不会被公开。