Prometheus是强大的开源企业级监控系统,不仅数据接口简单标准,更具有强大的PromQl作为数据聚合展现的工具。以下通过几个企业级应用案例,介绍监控的原理以及对应的PromQL解析。

CPU监控案例

CPU是所有任务的核心,大部分出现问题的情况都可以反映在cpu上。

Prometheus控制台

数据采集:node_exporterprometheus公式:

(1-((sum(increase(node_cpu{mode="idle"}[1m])) by (instance)) / (sum(increase(node_cpu[1m])) by (instance)))) * 100

一般用户态使用率是除空闲外的最高的,当软件启动大量进程处理任务的时候,对cpu消耗最大。另外iowait CPU使用率的监控也是比较重要的prometheus公式:

((sum(increase(node_cpu{mode="iowait"}[1m])) by (instance)) / (sum(increase(node_cpu[1m])) by (instance))

grafana 报警: 设置cpu使用率为95,虽然这个点也可以用,但是系统已经很慢了。

Prometheus函数

内存监控案例

linux命令查看内存情况

free -m

linux内存使用率非常的高效,linux free显示的信息,很容易让人误解。linux应用程序角度看,linux实际可用内存应该是系统free + buffers + cached使用率 = 实际可用内存/总内存(centos7之后,添加了available字段)

prometheus公式:

(1-((node_memory_Buffers + node_memory_cached + node_memory_memfree)/node_memory_memtotal)) * 100

硬盘io监控案例

node_filesystem_free/node_filesystem_size < 0.2嗲表空闲硬盘不足百分之20了predict_linear: 这个函数针对阈值不好配置的情况,针对曲线变化速率的计算,以及一段时间加速度的预测。它可以实时预测硬盘使用率曲线的变化情况,假如在一个很小的时间段,发现硬盘使用激素的上升,那么这种下降的速度进行一个未来时间的预测。如果发现未来五分钟内按照这种速度就达到硬盘占用百分之百,那么在当前硬盘还有百分之20的情况下就会报警。这个函数可以提供给我们一个阈值,不是一个指定的阈值,而是根据具体情况下,预测出来的,更加智能。

硬盘io监控使用的公式:

((rate(node_disk_bytes_read[1m] )+ rate(node_disk_bytes_written[1m])) / 1024 /1024) > 0

如果这个指标标高了, 那么必然 CPU_IOWAIT 也会飙高(所以说 从这里 我们也可以看得出 报警中 很多项目 虽然重要 但是无法避免重复 都有一定 的连带关系 这也是大米为什么在上篇中 给大家提出了一个 真实链路报警的 未来展望)

网络传输监控案例

使用公式:

rate(node_network_transimit_bytes[1m])/1024/1024,

网络传输的M数

其他案例

tcp等待连接监控 count_netstat_wait_connections(pushgateway+脚本)文件描述符 node_filefd_allocated/node_filefd_maxinum 每个进程能打开的文件数为1024

举报/反馈
分类: 游戏攻略 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录