4.prometheus metrics常用监控

PromQL有一个名为irate的函数,用于计算距离向量中时间序列的每秒瞬时增长率。
CPU利用率:
100-avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)*100  #显示1分钟窗口内使用的平均CPU百分比
 
CPU Saturation(饱和度):
node_load1 > on (instance)count by (instance)(node_cpu_seconds_total{mode="idle"})
 
内存使用率:
node_memory_MemTotal_bytes - 主机上的总内存
node_memory_MemFree_bytes - 主机上的空闲内存
node_memory_Buffers_bytes_bytes - 缓冲区缓存中的内存
node_memory_Cached_bytes_bytes - 页面缓存中的内存
都是以字节为单位的。(free -b)
(node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Cached_bytes +
node_memory_Buffers_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{device=~"/dev.*"} - node_filesystem_free_bytes{device=~"/dev.*"}) /node_filesystem_size_bytes{device=~"/dev.*"} * 100  #使用正则表达式来匹配
注意:
(1)不能使用匹配空字符串的正则表达式。
(2)对于不匹配的正则表达式,还有一个!~运算符。
 
预估磁盘还有多久爆满:???
Prometheus提供了一种机制,通过名为predict_linear的函数,可以预示磁盘增长率,在未来多长时间可以将磁盘占满。
predict_linear(node_filesystem_free_bytes{mountpoint="/"}[1h], 10*3600) < 0
 
监控服务状态:
node_systemd_unit_state{name="docker.service"} // 只查询 docker服务
node_systemd_unit_state{name="docker.service",state="active"} // 返回活动状态
node_systemd_unit_state{name="docker.service"} == 1 // 返回当前服务的状态
注:比较二进制运算符:==。这将检索所有值为1、名称标签为docker.service的指标。
 
up metric:
监视特定节点状态的另一个有用指标:up ,如果实例是健康的,度量就被设置为1 ,失败返回 - 或 0
 
向量匹配:???
有两种向量匹配:一对一和多对一(或一对多)。
实验中是有两条数据的,他们的metadata metric分别为SH,CD
一对一匹配:node_systemd_unit_state{name="docker.service"} == 1 and on (instance, job)metadata{datacenter="SH"}
多对一和一对多匹配是指“one”一侧的每个向量元素可以与“many”一侧的多个元素匹配。使用group_left或group_right修饰符显式地指定这些匹配,其中left或right决定了哪个向量具有更高的基数。
 
 
posted @ 2020-02-07 11:04  _幸会  阅读(3230)  评论(0编辑  收藏  举报