文章目录
- 一、指标类型
- Counter和Gauge
- Histogram
- Summary
- 二、11个聚合函数
- 三、二元运算符的优先级
- 四、基础资源
- 5分钟内CPU使用率
- 1分钟平均负载超过主机CPU数量两倍的时间序列
- 计算CPU的数量
- 内存使用率
- 磁盘使用率
- 五、正则匹配
- 六、函数
- hour()
- rate()
- 七、其他
- [5m]
- [5m] offset 1d
- 参考
一、指标类型
Counter和Gauge
Histogram
Summary
二、11个聚合函数
三、二元运算符的优先级
四、基础资源
5分钟内CPU使用率
100 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)*100
1分钟平均负载超过主机CPU数量两倍的时间序列
node_load1 > on(instance) 2 * count(node_cpu_seconds_total{mode="idle"}) by(instance)
计算CPU的数量
count by (instance)(node_cpu_seconds_total{mode="idle"})
内存使用率
((node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes)) / node_memory_MemTotal_bytes) * 100
磁盘使用率
(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100
#使用正则表达式匹配多个挂载点
(node_filesystem_size_bytes{mountpoint="/|/run"} - node_filesystem_free_bytes{mountpoint="/|/run"}) / node_filesystem_size_bytes{mountpoint="/|/run"} * 100
#使用 predict_linear 函数来构建在未来什么时候会耗尽磁盘空间
predict_linear(node_filesystem_free_bytes{mountpoint="/"}[1h], 4* 3600) < 0
五、正则匹配
node_cpu_seconds_total{mode=~'s.*'} #匹配以s开头的
六、函数
hour()
on() hour() >= 14 <= 23 # 表示时间范围为北京时间:8点—21点,严格时间为7:59—21:59
那么是如何计算的呢?
上面表示的是14点—23点,这是UTC时间,而北京时间要在这个基础上+8小时,也就是
>=22和<=7,但这里没有分钟,带上分钟应该为>=21:59和<=7:59,取反后,最终表达的北京时间为:7:59—21:59,也就是我们说的8点到21点
rate()
每一个时间点的值与前面的值作差,全部相加求平均值,得到一个即时向量,适用于变化比较慢的指标
七、其他
[5m]
代表过去5分钟内的范围向量
[5m] offset 1d
获取距此刻1天之前5分钟内的所有样本
参考
https://www.bilibili.com/video/BV1PT4y1P7bX/?p=3&vd_source=0467ab39cc5ec5940fee22a0e7797575