Prometheus基础和函数学习

Prometheus基础和函数学习

基础语法

基于向量(vector)的检索⽅式。
基于 metric 查询
http_requests_total 与 http_requests_total{} ⼀样,也可以写成
{name=“http_requests_total”} 。

label 查询

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200525153220939.png
⽀持基于 label 的查询
在这里插入图片描述

正则匹配

、 != 、 =~ 、 !~ 。
Prometheus 的 正则是基于 Google 的 re2,具体语法参⻅
https://github.com/google/re2/wiki/Syntax。
推荐写法 {job=~".+"} 、 {job=~".",method=“get”} 。
不推荐写法 {job=~".
"}
在这里插入图片描述

时间范围查询

s 秒
m 分钟
h ⼩时
d 天
w 周
y年
在这里插入图片描述

时间位移查询

http_request_total{} 查询当前最新数据。
http_request_total{}[5m] 查询以当前时间为基准,5 分钟内的数据。
在这里插入图片描述
http_requests_total{job=“prometheus”,group=“canary”}
node_load1{job!=“node-peiking1”}
http_requests_total{job=“prometheus”}[5m]

操作符

数学运算

  • 加 - 减 * 乘 / 除 % 求余
    ^ 幂运算
    布尔运算
    == 相等
    != 不相等

⼤于
< ⼩于
= ⼤于等于
<= ⼩于等于
也可以使⽤布尔值来修饰⽐较运算,结果不会返回具体值,只会返回 0 、 1 。
在这里插入图片描述

逻辑运算

and 并且
or 或者
unless 排除

运算优先级

^* 、 / 、 % + 、 -
== 、 != 、 <= 、 < 、 >= 、 >
and 、 unless
or

聚合

node_load1{job=“node-peiking1”}[10m] offset 10m
http_requests_total > bool 1000
sum 求和
min 最⼩值
max 最⼤值
avg 平均值
stddev 标准差
stdvar 标准⽅差
count 计数
count_values 对 value 进⾏计数
bottomk 后n条
topk 前n条
quantile 分位数

语法

在这里插入图片描述
或者
在这里插入图片描述
参数(parameter)只⽀持 count_values、quantile、topk、bottomk。
统计 HTTP 请求的 P95
在这里插入图片描述

函数

时间处理函数

timestamp() 返回 UTC 时间戳。
time() UTC 当前时间。
minute() UTC 转换为分钟,0-59。
hour() UTC 转换为⼩时,0-23。
day_of_month() UTC 转换为天。
days_in_month() UTC 转换为天,28-31。
day_of_week() UTC 转换为每周中的每天。
month() UTC 转换为⽉份,1-12。
year() UTC 转换为年份。

label 处理函数

[without|by (

sort() 升序排序的向量元素。
sort_desc() 降序排序的向量元素。
scalar() 以标量形式返回单个元素的值。
vector() 以不包含 label 的向量的形式返回标量。
absent() 聚合 label。在处理告警的时候⽐较有⽤。
absent_over_time() 聚合 label,基于时间段。在处理告警的时候⽐较有⽤。
label_join() label 连接,使⽤分隔符(separator)。
label_replace() label 替换,基于正则。

值处理函数

changes() 返回向量在给定时间范围内更改的次数。
abs() 返回绝对值。
ceil() 数据取整。
floor() 数据取整。
round() 数据取整。通过 to_nearest 指定四舍五⼊倍数,可以是分数。
clamp_max() 采样最⼤值。
clamp_min() 采样最⼩值。
delta() 计算向量中每个元素的第⼀个和最后⼀个值之间的差值。
idelta() 计算向量中最后两个样本的差值。

计算处理函数

sqrt() 计算平⽅根。
deriv() 计算导数,使⽤线性回归。只有数据模型为 Gauge 的时候才可以使⽤。
exp() 计算指数。
ln() 计算⾃然对数。
log2() 计算 log2。
log10() 计算 log10。
rate() 计算向量中时序数据的每秒平均增⻓率。只有数据模型为 Counter 的时候才可以使
⽤。 rate() 优先级⾼于聚合操作(例如 sum() )。
irate() 计算向量中时序数据的每秒平均增⻓率。基于最后两个数据点。只有数据模型为 Counter
的时候才可以使⽤,且适⽤于绘制易失性、快速移动的图形。 irate() 的优先级⼤⾬聚合操作符
(例如 sum() )。
increase() 计算向量中时序数据的增量。只有数据模型为 Counter 的时候才可以使⽤。
histogram_quantile() 计算直⽅图。使⽤ rate() 函数指定分位数计算的时间窗⼝。
holt_winters() 基于时序数据⽣成⼀个平滑值。只有数据模型为 Gauge 的时候才可以使⽤。
predict_linear() 预测 t 值,使⽤线性回归。只有数据模型为 Gauge 的时候才可以使⽤。

聚合处理函数

_over_time() 基于时序聚合向
量。 max_over_time() 、 min_over_time() 、 sum_over_time() 、 avg_over_time() 、 count_o
ver_time() 、 stddev_over_time() 、 stdvar_over_time() 、 quantile_over_time() 。

函数使⽤场景

计算 Counter 指标增⻓率

在这里插入图片描述
或者
在这里插入图片描述
rate() 或者 increase() 计算的是平均增⻓速率,容易遇到"⻓尾问题"。
采⽤ irate() 可以避免。采样,也更灵敏,但如果是观测⻓期趋势的化,可能会造成⼲扰。
在这里插入图片描述

预测 Gauge 指标变化趋势

基于阈值的告警模式对于当资源⽤量是平滑增⻓的情况下是能够有效的⼯作的,但如果遭遇突增、突
降,则容易引发其他问题。
predict_linear() 基于线性回归,可以很好的应对这种情况,⽐如磁盘使⽤率。
在这里插入图片描述

统计 Histogram 指标的分位数

Histogram 和 Summary 都可以⽤于统计和分析数据的分布情况。
Summary 直接在客户端计算分位数(数据采样)。
Histogram 计算分位数需要通过 histogram_quantile() 。
数据样本
在这里插入图片描述
计算⽅法
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值