美文网首页
PromQL基础语法(上)-数据类型、时序选择器、二元操作符【p

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

作者: 玄德公笔记 | 来源:发表于2022-11-01 21:13 被阅读0次

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
image.png
  • 条件过滤

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

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

2.2 区间向量选择器

  • 时间单位
符号 说明
s
m
h 小时
d
w 星期
y
  • 使用
system_mem_used_percent[60s]
  • 有图有真相


    image.png

2.3 偏移修饰器

- 瞬时向量的偏移修饰器

system_mem_used_percent offset 5m
image.png

- 区间向量的偏移修饰器

system_mem_used_percent[3m] offset 5m
image.png

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%的都被筛选出来


image.png

- 示例(正则匹配)

image.png

3.3 逻辑操作符

- 符号说明

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

- 示例(and | or)

system_mem_used_percent  > 80 or  system_mem_used_percent < 10

有图有真相

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

image.png

- 示例 (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%

有图有真相:

image.png

- 优先级 (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%的都被取出来了

image.png
  • 先算or怎么办

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

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

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

  • 有图有真相,验证结果

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

image.png

- 优先级(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
  • 有图有真相,验证结果
image.png
  • 如果要先计算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%
  • 有图有真相,结果验证


    image.png

3.4 优先级

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

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


相关文章

  • PromQL基础语法(上)-数据类型、时序选择器、二元操作符【p

    1. 数据类型 1.1 Gauge(仪表盘) 详情见:《动手写prometheus的exporter-01-Gau...

  • ES5知识点整理

    基本语法 基本语法包括数据类型,操作符,语句,函数 数据类型 5种简单数据类型(基本数据类型)Undefined、...

  • JavaScript 学习笔记

    五种基本数据类型和一种复杂数据类型 最基础的语法: 基本操作符: 控制语句 函数 复杂概念,进阶变量,作用域,内存...

  • 2017-07-03

    0、基础语法 Javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。 数据类型有strin...

  • 8.语言基础认知

    任何语言的核心所描述的都是这门语言在最基本的层面上如何工作,涉及语法、操作符、数据类型 以及内置功能,在此基础之上...

  • HTML速写之Emmet语法规则

    缩写语法 Emmet 使用类似于 CSS 选择器的语法来描述元素的结构与属性。 嵌套操作符[https://www...

  • 第 3 章 语言基础、3.1 语法

    第 3 章 语言基础 任何语言的核心所描述的都是这门语言在最基本的层面上如何工作,涉及语法、操作符、数据类型以及内...

  • Swift基础语法文章汇总

    Swift基础语法(一)常量变量、注释、运算符、数据类型的认识[https://www.jianshu.com/p...

  • 前端02day

    元素选择器 语法:标签名{}例如p会选中页面中所有p标签,h1会选中所有h1标签类选择器语法:.className...

  • python入门引导(二·数据类型)

    上一篇:python入门引导(一·初识) python基础知识:语法,变量,数据类型 一·语法 缩进 python...

网友评论

      本文标题:PromQL基础语法(上)-数据类型、时序选择器、二元操作符【p

      本文链接:https://www.haomeiwen.com/subject/deqstdtx.html