PromQL 介绍

本文深入介绍了Prometheus的查询语言PromQL,包括基本用法、时间序列查询、时间位移操作、聚合操作、标量和字符串使用,以及各种运算符的详细说明。通过实例展示了如何查询、过滤和聚合时间序列数据,帮助读者更好地理解和运用PromQL进行监控数据的分析。

PromQL 是 Prometheus 内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持。

基本用法

查询时间序列

当 Prometheus 通过 Exporter 采集到相应的监控指标样本数据后,我们就可以通过PromQL 对监控样本数据进行查询。

当我们直接使用监控指标名称查询时,可以查询该指标下的所有时间序列。如:

prometheus_http_requests_total

等同于:

prometheus_http_requests_total{
   
   }

该表达式会返回指标名称为 prometheus_http_requests_total 的所有时间序列:
在这里插入图片描述
PromQL 还支持用户根据时间序列的标签匹配模式来对时间序列进行过滤,目前主要支持两种匹配模式:完全匹配和正则匹配。
➢ PromQL 支持使用 = 和 != 两种完全匹配模式:

通过使用 label=value 可以选择那些标签满足表达式定义的时间序列;
反之使用 label!=value 则可以根据标签匹配排除时间序列;

例如,如果我们只需要查询所有 prometheus_http_requests_total 时间序列中满足标签 instance 为 hadoop102:9090 的时间 序列,则可以使用如下表达式:

prometheus_http_requests_total{
   
   instance="hadoop102:9090"}

反之使用 instance!=“localhost:9090” 则可以排除这些时间序列:

prometheus_http_requests_total{
   
   instance!="hadoop102:9090"}

PromQL还可以支持使用正则表达式作为匹配条件,多个表达式之间使用 | 进行分离:
使用 label=~regx 表示选择那些标签符合正则表达式定义的时间序列;
反之使用 label!~regx 进行排除;

例如,如果想查询多个环节下的时间序列序列可以使用如下表达式:

prometheus_http_requests_total{
   
   environment=~"staging|testing|development",method!="GET"}

排除用法

prometheus_http_requests_total{
   
   environment!~"staging|testing|development",method!="GET"
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值