promql 的基本使用方法(1)

一、表达式语言类型

Prometheus表达式或子表达式可以评估为一下四种类型之一:

即时向量(Instant vector)- 包含每个时间序列单个样品的一组时间序列,共享相同的时间戳
范围向量(Range vector)- 包含一个范围内数据点的一组时间序列
标量(Scalar)- 一个简单的数字浮点值
字符串(String)- 一个简单的字符串值;

二、即时向量选择

即时向量选择器允许选择一组时间序列,或者某个给定的时间戳的样本数据。
选择具有http_requests_total的时间序列:

prometheus_http_requests_total
等同于:
prometheus_http_requests_total{}

PromQL还支持用户根据时间序列的标签匹配模式来对时间序列进行过滤,
PromQL支持使用=和!=两种完全匹配模式:

=:选择正好相等的字符串标签
!=:选择不相等的字符串标签

选择有http_requests_total名称的、有prometheus工作标签的、code为200标签的时间序列:

prometheus_http_requests_total{job="prometheus",code="200"}

PromQL还支持使用正则表达式作为匹配条件,多个表达式之间使用|进行分离:

=~:选择匹配正则表达式的标签(或子标签)
!=:选择不匹配正则表达式的标签(或子标签)

选择staging、testing、development环境下的,GET之外的HTTP方法的http_requests_total的时间序列:http_requests_total{environment=~"staging|testing|development",method!="GET"}

三、范围向量选择

范围向量表达式返回从当前时刻开始的一定时间范围的时间序列集合回来。
语法是,在一个向量表达式之后添加[]来表示时间范围,持续时间用数字表示,后接下面单元之一:
s:seconds
m:minutes
h:hours
d:days
w:weeks
y:years

选择最后5分钟的记录,metric名称为http_requests_total、作业标签为prometheus的时间序列的所有值:

http_requests_total{job="prometheus"}[5m]

四、时间位移操作

如果我们想查询5分钟前的瞬时样本数据,或昨天一天的区间内的样本数据时,可以使用位移操作,位移操作的关键字为offset。
可以使用offset时间位移操作:
http_request_total{} offset 5m
http_request_total{}[1d] offset 1d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值