Prometheus监控-查询表达式篇
Overview
Prometheus提供了⼀种功能性表达式语⾔,能够让⽤户实时的选择和聚合时间序列的数据。表达式返回的结果可以被显⽰为曲线图,也可以在prometheus浏览器中显⽰为表格,或者通过HTTP API经由外部系统处理。
表达式语⾔类型
Prometheus表达式或⼦表达式可以评估为⼀下四种类型之⼀:
即时向量(Instant vector) - 包含每个时间序列单个样品的⼀组时间序列,共享相同的时间戳
范围向量(Range vector) - 包含⼀个范围内数据点的⼀组时间序列
标量(Scalar) - ⼀个简单的数字浮点值
字符串(String) - ⼀个简单的字符串值;当前未使⽤
根据使⽤情况(例如画图或者显⽰表达式的输出),只有某些类型是合法的,例如,即时向量表达式是
可以画图的唯⼀类型。
时间序列选择器
即时向量选择
即时向量选择器允许选择⼀组时间序列,或者某个给定的时间戳的样本数据。下⾯这个例⼦选择了具有http_requests_total的时间序列:http_requests_total
你可以通过附加⼀组标签,并⽤{}括起来,来进⼀步筛选这些时间序列。下⾯这个例⼦只选择有http_requests_total名称的、时间正则表达式java
有prometheus⼯作标签的、有canary组标签的时间序列:
http_requests_total{job="prometheus",group="canary"}
另外,也可以也可以将标签值反向匹配,或者对正则表达式匹配标签值。下⾯列举匹配操作符:
=:选择正好相等的字符串标签
!=:选择不相等的字符串标签
=~:选择匹配正则表达式的标签(或⼦标签)
!=:选择不匹配正则表达式的标签(或⼦标签)
例如,选择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]
操作符
Prometheus⽀持多种⼆元和聚合的操作符,。
函数
Prometheus⽀持多种函数,来对数据进⾏操作,。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论