首页/云/可观测性速查/predict_linear:容量耗尽预测查询
Prometheus 与采集64 条

predict_linear:容量耗尽预测查询

predict_linear 对指定窗口做线性回归并外推未来某时刻的值;经典用法是预测磁盘何时耗尽,让容量告警从到达阈值提前到预计将到达。

可观测性速查云更新于 2026-10-13

predict_linear 是什么

predict_linear 对指定窗口的数据做线性回归,再把拟合出的直线外推到未来某一时刻,返回那一刻的预测值。经典用法是容量告警:不再等磁盘使用率真的到 90% 才报警,而是按当前趋势预测几天后会写满时提前介入。它把告警从「已经发生」前移到「预计将发生」,代价是对突发变化不敏感,因此适合作为辅助信号。

基本信息

适用函数predict_linear(v range-vector, t seconds)
第一个参数用于回归的历史窗口,常用 6 小时到 1 天
第二个参数外推的未来秒数,例如 4 天写成 4*24*3600
返回含义拟合直线在目标时刻的取值

典型使用场景

  • 磁盘容量:预测根分区可用空间何时归零,提前安排扩容
  • 连接池水位:按增长趋势预留调整时间
  • 队列积压:预测积压清空或触顶的时间点
  • 内存增长:判断缓慢泄漏是否会在发布周期内触顶
  • 容量评审:季度容量评估时提供趋势外推依据

磁盘耗尽预测

磁盘耗尽预测
# 按 6 小时趋势预测 4 天后的可用空间(结果为负表示将写满)
predict_linear(node_filesystem_avail_bytes{mountpoint="/"}[6h], 4*24*3600) < 0

# 预测 8 小时后使用率是否会超过 90%
predict_linear(node_filesystem_avail_bytes{mountpoint="/"}[6h], 8*3600)
  < node_filesystem_size_bytes{mountpoint="/"} * 0.1

# 对照:deriv 给出每秒变化速率,用于确认增长是否稳定
deriv(node_filesystem_avail_bytes{mountpoint="/"}[6h])

参数与结果读法

项说明取值建议
回归窗口参与拟合的历史区间覆盖若干抓取周期与业务波动,常用 6h 或 1d
外推时长预测的未来秒数与处置周期匹配,如备份或扩容需要多久
结果符号预测时刻的指标值负值或低于安全线的组合即是告警条件
拟合质量线性假设是否成立有周期性或阶跃时预测偏差大
告警条件建议写成「预测值低于安全线」而不是「预测值小于零」:留出处置与验证的时间余量,比精确到写满那一刻更实用。
与 deriv 配合判断:deriv 给出现时速度,predict_linear 给出未来结果;两者结论矛盾时通常说明窗口内数据有阶跃,需要先核对变更记录。

易错点

  • 窗口过短会把一次备份写入误判成持续增长趋势,产生「很快写满」的误报
  • 对周期性明显的负载(如每日批处理)做线性外推偏差大,只能作为辅助信号而不是唯一依据
  • 外推时长设得过长时置信度迅速下降,预测数字看似精确其实没有参考价值
  • 扩容或清理动作后不调整告警阈值,规则仍按旧趋势触发,值班逐渐忽略

数据来源与参考

  • Prometheus 文档 · predict_linear 函数
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌