编程技术分享平台

网站首页 > 技术教程 正文

Prometheus 企业级实用案例及对应的PromQL表达式

xnh888 2025-05-22 14:33:40 技术教程 13 ℃ 0 评论

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

CPU监控案例

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

数据采集:node_exporter

prometheus公式:

(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,虽然这个点也可以用,但是系统已经很慢了。

内存监控案例

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


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表