prometheus 监控方法论

说明: 监控框架,通常就是我们说的监控的方法论,目前常用的就是USE和Google的四个黄金指标

USE侧重于主机的维度,该方法建议收集:使用率、饱和度、错误

Google四个黄金指标侧重于应用程序的性能,该方法建议收集: 流量、延迟、饱和度、错误。其中,流量可以为QPS或TPS

USE方法

1) CPU监控

CPU使用率

irate函数:用于计算范围向量中时间序列增加的每秒的即时速率

CPU在5分钟内每秒的速率

irate(node_cpu_seconds_total{job="node_exporter"}[5m])

每台Node平均的CPU空闲使用率

avg(irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100

每台CPU平均CPU使用率

100-avg(irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100

 

 CPU饱和度

node_load1显示1分钟CPU负载

 CPU的错误数不太容易获取

2) 内存监控

1) 内存使用率

内存总大小:node_memory_MemTotal_bytes
空闲可用:node_memory_MemFree_bytes
缓冲:node_memory_Buffers_bytes
缓存:node_memory_Cached_bytes

内存使用率:

(node_memory_MemTotal_bytes -(node_memory_MemTotal_bytes-node_memory_MemFree_bytes-node_memory_Cached_bytes))/node_memory_MemTotal_bytes * 100 

 2) 内存饱和度

node_vmstat_pswpin:系统每秒从磁盘读到内存的字节数
node_vmstat_pswpout:系统每秒从内存写到磁盘的字节数

1024 * sum by(instance)

((rate(node_vmstat_pswpin[1m])+rate(node_vmstat_pswpout[1m])))

3) 磁盘使用率

说明: 每个主机上的每个挂载点都有文件系统,我们添加mountpoint标签,特别是根文件系统挂载,另外的单独挂载的文件系统,需要额外添加mountpoint挂载点,进行计算

根文件系统磁盘使用率:

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint='/'} * 100

磁盘predict_linear函数:

predict_linear(node_filesystem_size_bytes{mountpoint='/'}[1h],4*3600)<0

解释:

predict_linear使用线性回归,选择最近1个小时磁盘使用的趋势,以这一个小时的增长情况来确定文件系统何时会耗尽。

这里使用4*3600,即四个小时;最后判断小于0的值,即文件系统空间不足

因此:如果基于最后一个小时的增长历史记录,文件系统将在接下来四个小时内用完空间,查询结果返回一个负数,我们可以基于这个触发报警

Google四个黄金指标

服务状态监控:

之前我们通过node_exporter的systemd收集器,收集了sshd、docker、rsyslog服务的状态

监控状态展示:

node_systemd_unit_state{name="docker.service",state="active"}

1)流量:QPS或者TPS

sum(rate(http_server_requests_seconds_count{application="$application", instance="$instance"}[1m]))

 2)延时

sum(rate(http_server_requests_seconds_sum{application="$application", instance="$instance", status!~"5.."}[1m]))/sum(rate(http_server_requests_seconds_count{application="$application", instance="$instance", status!~"5.."}[1m]))
 

3)饱和度

 // tomcat 
A: tomcat_threads_busy_threads{application="$application", instance="$instance"} 
B: tomcat_threads_current_threads{application="$application", instance="$instance"} 
C: tomcat_threads_config_max_threads{application="$application", instance="$instance"} 

 4) 错误

例如:HTTP响应码为5开头的

sum(rate(http_server_requests_seconds_count{application="$application", instance="$instance", status=~"5.."}[1m]))
 

 其他测量方式

up: 可用性

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值