PromQL基础语法(上)-数据类型、时序选择器、二元操作符【prometheus查询语句】

1. 数据类型

1.1 Gauge(仪表盘)

详情见:《动手写prometheus的exporter-01-Gauge(仪表盘)》

1.2 Counter(计数器)

详情见:《动手写prometheus的exporter-02-Counter(计数器)》

1.3 HIstogram(直方图)

详情见:动手写prometheus的exporter-03-HIstogram(直方图)》

1.4 Summary(摘要)

详情见:《动手写prometheus的exporter-04-Summary(摘要)》

2. 时序选择器

2.1 瞬时向量选择器

  • 简单示例

以下是一个端口存活的

probe_success

在这里插入图片描述

  • 条件过滤

对于上边的结果,我们做一些过滤:

probe_success{group="http", job="http_hq_nginx", project="HQ-AllInOne-PC"}

在这里插入图片描述

2.2 区间向量选择器

  • 时间单位
符号说明
s
m
h小时
d
w星期
y
  • 使用
system_mem_used_percent[60s]
  • 有图有真相
    在这里插入图片描述

2.3 偏移修饰器

- 瞬时向量的偏移修饰器

system_mem_used_percent offset 5m

在这里插入图片描述

- 区间向量的偏移修饰器

system_mem_used_percent[3m] offset 5m

在这里插入图片描述

3. 二元操作符

3.1 算术操作符

- 符号说明

符号说明
+
-
*
/
%取余
^

- 示例

system_mem_used{ident="10.10.239.31"}+ system_mem_free{ident="10.10.239.31"}- system_mem_total{ident="10.10.239.31"}

说明:

  • prometheus的 system_mem_usedfree 命令的 used + buff/cache
  • 以上: 使用的+空闲的=总数

3.2 匹配操作符

- 符号说明

符号说明
==等于
!=不等于
>大于
>=大于等于
<小于
<=小于等于
=~匹配正则
!~匹配正则非

- 示例(比较判断)

如图可见 大于 80%的都被筛选出来
-

- 示例(正则匹配)

在这里插入图片描述

3.3 逻辑操作符

- 符号说明

符号说明
and和(交集)
or或(并集)
unless补集

- 示例(and | or)

system_mem_used_percent  > 80 or  system_mem_used_percent < 10

有图有真相

可见大于80% 和 小于 10%的都被筛选出来了。

在这里插入图片描述

- 示例 (unless)

(system_mem_used_percent  >75)  unless (system_mem_used_percent  < 70   or system_mem_used_percent  > 85 ) 
  • 先计算 < 70% or >85%
  • 再计算unless 是第一步的补集,结果 70% <= x <= 85%
  • 最后和 >75% 取交集,结果 75% < x < 85%

有图有真相:

在这里插入图片描述

- 优先级 (and > or)

and优先级高于or

  • 示例
system_mem_used_percent  > 5 or system_mem_used_percent < 10 and system_mem_used_percent > 80  

先计算and(结果是空),再计算 or(空和大于5%取or) ,因此结果是 >5

  • 有图有真相

如图可见,大于5%的都被取出来了

在这里插入图片描述

  • 先算or怎么办

用括号把先算的括起来,括号可以套括号

(system_mem_used_percent  > 5 or system_mem_used_percent < 10 )and system_mem_used_percent > 80  

括号里边计算or (结果0~100%),再计算括号外边 and,结果 >80%

  • 有图有真相,验证结果

如下图,结果只有大于80%的几条结果

在这里插入图片描述

- 优先级(unless > or)

  • 示例
system_mem_used_percent  > 90   or   system_mem_used_percent  > 60   unless system_mem_used_percent  > 70 

计算说明:

  • 先计算unless:x >70的补集是 x <= 70 ,结果跟 x > 60 取交集 ,得 60< x <=70
  • 再计算or:x > 9060< x <=70 的交集,结果是:x > 9060< x <=70
  • 有图有真相,验证结果

在这里插入图片描述

  • 如果要先计算or
(system_mem_used_percent  > 90   or   system_mem_used_percent  > 60)   unless system_mem_used_percent  > 70 

计算说明:

  • 先计算括号里or:括号里结果为 >60%
  • 再计算括号外unless:>70%的补集是 <= 70%,和 >60%取并集 60< x <= 70%
  • 有图有真相,结果验证
    在这里插入图片描述

3.4 优先级

顺序符号
1^
2*, /, %
3+, -
4==, !=, <=, <, >=, >
5and, unless
6or

接下来,《PromQL基础语法(下)》将讲述“聚合运算符”和“内置函数”


在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Prometheus时序数据库提供了强大的Promql查询语言来满足我们的查询需求。在查询数据之前,我们需要先插入数据到Prometheus中。在之前的博客中,详细介绍了Prometheus数据的插入过程\[1\]。而在查询数据时,我们可以使用Promql来进行查询。Promql是一种灵活的查询语言,可以根据我们的需求进行千变万化的查询\[2\]。 在进行查询时,Prometheus会根据指定的时间窗口来过滤数据,默认的时间窗口是5分钟,可以通过启动参数来进行设置\[3\]。这样可以确保我们只获取到指定时间范围内的数据,而不会包含过去或未来的数据。 总结来说,Prometheus时序数据库通过Promql查询语言来满足我们的查询需求,并通过时间窗口来过滤数据,确保我们获取到的数据符合我们的要求。 #### 引用[.reference_title] - *1* [Prometheus时序数据库-数据的查询](https://blog.csdn.net/weixin_55416758/article/details/115350199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Prometheus时序数据库-报警的计算 及 Prometheus时序数据库-数据的查询](https://blog.csdn.net/m0_67322837/article/details/125004715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值