news 2026/6/5 6:07:35

别再死记硬背了!用这5个真实监控场景,彻底搞懂Prometheus聚合查询(by/sum/topk实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再死记硬背了!用这5个真实监控场景,彻底搞懂Prometheus聚合查询(by/sum/topk实战)

5个真实监控场景实战:用Prometheus聚合查询解决运维难题

当凌晨三点收到磁盘告警时,你是否曾对着几十台主机的监控数据手足无措?Prometheus的聚合查询功能就像瑞士军刀,能帮你从数据洪流中精准提取关键信息。本文将带你用5个真实场景,彻底掌握bysumtopk等操作符的实战用法。

1. 磁盘告警:快速定位问题主机

收到"磁盘使用率超过90%"的告警时,第一反应往往是:"到底哪几台主机最危险?"传统做法是逐个查看主机指标,而topk配合by能瞬间给出答案:

topk(3, max by (instance, mountpoint) ( node_filesystem_usage_percent{mountpoint!~"tmpfs|/boot"} ) )

关键点解析

  • node_filesystem_usage_percent是节点导出器提供的磁盘使用率指标
  • !~"tmpfs|/boot"排除临时文件系统和/boot分区
  • max by (instance, mountpoint)按主机和挂载点分组取最大值
  • topk(3, ...)筛选最严重的3条记录

实际使用中发现,生产环境建议加上and node_filesystem_avail_bytes > 1GB条件,避免小容量系统分区干扰判断

2. 服务监控:排除测试环境干扰

计算生产环境总QPS时,测试环境的流量常会造成数据污染。用without可以优雅解决:

sum without (environment) ( rate(http_requests_total{environment="prod"}[5m]) )

对比两种常见错误写法:

  1. 直接求和未过滤环境:sum(rate(http_requests_total[5m]))
  2. 过滤后未聚合:rate(http_requests_total{environment="prod"}[5m])

进阶技巧:当需要同时显示各环境QPS时,改用by

sum by (environment) ( rate(http_requests_total[5m]) )

3. 容量规划:预测磁盘耗尽时间

单纯看剩余空间绝对值会误导判断——1TB对日志分区可能撑不过一周,而对系统分区则绰绰有余。用predict_linear结合聚合更科学:

topk(5, predict_linear( node_filesystem_avail_bytes{mountpoint!~"tmpfs"}[1w], 7 * 86400 ) ) < 0

实现原理

  1. 基于1周历史数据([1w])预测7天(7*86400秒)后的剩余空间
  2. topk(5, ...) < 0筛选出最早耗尽的5个分区
  3. 结果小于0表示将在预测时间内耗尽

4. 异常检测:发现突增流量服务

avg_over_time结合by找出QPS突增200%的服务:

rate(http_requests_total[5m]) / avg_over_time(http_requests_total[1h]) by (service) > 3

操作指南

  1. 分子rate(...[5m])计算当前5分钟QPS
  2. 分母avg_over_time(...[1h])取1小时平均QPS
  3. by (service)确保按服务分组计算
  4. > 3筛选当前流量是均值3倍以上的服务

5. 资源优化:识别低效API端点

bottomk找出响应时间最差但调用量少的API,这些是优化性价比最高的目标:

bottomk(5, avg by (endpoint) ( rate(http_request_duration_seconds_sum[1h]) / rate(http_request_duration_seconds_count[1h]) ) ) * on (endpoint) group_left count by (endpoint) ( rate(http_request_duration_seconds_count[1h]) ) < 100

解读说明

  1. 第一部分计算各端点平均响应时间
  2. * on (endpoint) group_left关联该端点的调用量
  3. < 100筛选每小时调用量不足100次的端点
  4. 最终得到:响应慢且调用少的"低效端点黑名单"

避坑指南:聚合查询常见误区

  1. 错误:直接对计数器求和

    sum(http_requests_total) # 错误!

    正确:先做rateincrease

    sum(rate(http_requests_total[5m]))
  2. 错误:忽略by导致维度爆炸

    sum(rate(api_latency_seconds[5m])) # 混合所有维度

    正确:明确聚合维度

    sum by (service, endpoint) ( rate(api_latency_seconds[5m]) )
  3. 错误:在Grafana中滥用$__interval

    sum(rate(metric[$__interval])) # 可能导致数据不准

    正确:固定合理区间

    sum(rate(metric[5m])) # 根据指标特性选择固定窗口
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 6:07:29

XGLM-1.7B多语言模型训练数据揭秘:5000亿token的平衡语料库

XGLM-1.7B多语言模型训练数据揭秘&#xff1a;5000亿token的平衡语料库 【免费下载链接】xglm_1.7b 项目地址: https://ai.gitcode.com/hf_mirrors/wuhaicc/xglm_1.7b 想要了解XGLM-1.7B多语言模型如何实现跨语言理解能力吗&#xff1f;这个拥有17亿参数的强大模型&…

作者头像 李华
网站建设 2026/6/5 6:07:16

D2DX:让暗黑破坏神2在现代PC上重获新生的3大优化方案

D2DX&#xff1a;让暗黑破坏神2在现代PC上重获新生的3大优化方案 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为暗黑…

作者头像 李华
网站建设 2026/6/5 6:07:09

通义灵码——基于通义大模型的智能编码辅助工具

文章目录一 、概述介绍核心场景代码智能生成研发智能问答产品优势二、下载和安装指南三、 功能介绍3.1 行级/函数级实时续写3.2 自然语言生成代码3.3 单元测试生成3.4 代码优化3.5 代码注释生成3.6 代码解释3.7 研发领域自由问答3.8 异常报错智能排查&#xff08;Java&#xff…

作者头像 李华
网站建设 2026/6/5 6:07:02

Claude企业级RAG实战:本地化私有知识库搭建指南

1. 项目概述&#xff1a;这不是在搭一个“玩具”&#xff0c;而是在给Claude装上你公司的记忆芯片你有没有过这种体验&#xff1a;刚入职的新人问你“客户合同里关于数据留存的条款在哪查&#xff1f;”&#xff1b;销售同事急着要一份三年前某项目的定制化功能说明&#xff0c…

作者头像 李华