首页/云/可观测性速查/deriv:指标变化斜率
Prometheus 与采集64 条

deriv:指标变化斜率

deriv() 用线性回归计算 Gauge 在窗口内的每秒变化速率;用于观察'增长得多快',比绝对值更能提前暴露趋势问题。

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

deriv 是什么

deriv() 是 PromQL 的时间序列函数,用线性回归计算 Gauge 指标在窗口内的每秒变化速率。它回答的是「变化有多快」,而不是「当前值是多少」:磁盘还剩 40 吉字节未必紧急,但按现在的写入速度 4 天后会满,这就是需要提前处理的问题。适合线性增长场景,如磁盘占用、连接数、队列积压。

基本信息

适用函数deriv(v range-vector),返回每秒变化量
输入要求Gauge 类指标;Counter 直接用 rate 更合适
单位每秒,与业务按分钟统计的口径相差 60 倍
窗口选择常用 30 分钟到 1 小时,兼顾噪声与灵敏度

典型使用场景

  • 磁盘容量预警:按当前增长速率估算剩余可用天数
  • 内存泄漏识别:可用内存持续下降且斜率稳定
  • 队列积压监控:消费组积压增长速率持续为正说明消费跟不上
  • 连接数膨胀:连接数斜率异常时提前扩容或限流
  • 容量趋势报告:按周统计增长率,作为扩容决策输入

用法示例

用法示例
# 可用内存每秒变化(负值表示正在消耗)
deriv(node_memory_MemAvailable_bytes[1h])

# 消费组积压增长速率
deriv(kafka_consumergroup_lag[30m])

# 换算为每小时的变化量,更贴近运维口径
deriv(node_filesystem_avail_bytes{mountpoint="/"}[1h]) * 3600

# 配套判断:斜率持续为负且绝对值稳定,通常在提示缓慢泄漏

结果读法

结果符号含义处置方向
持续为正指标在增长容量类指标需评估何时触顶
持续为负指标在下降可用资源下降需排查消耗来源
在零附近抖动无明显趋势多为正常波动,不宜据此告警
突变为极大值窗口内出现阶跃多为重启或批量操作,需与变更时间对照
窗口长度是最关键的调参项:窗口太短对噪声敏感、告警抖动,窗口太长会掩盖近期加速;先从 30 到 60 分钟起步,再按指标波动特性调整。
deriv 对非线性变化不敏感:业务量有周期性(白天高、夜间低)时,线性回归的斜率会被平均掉,这类指标改用同比基线更合适。

易错点

  • 把 deriv 的结果直接当业务口径使用容易差 60 倍,遇到按分钟统计的需求要先乘以 60 再展示
  • 进程重启或采集中断会在窗口内制造阶跃,斜率出现假尖峰,需与启动时间、变更记录交叉验证
  • 对有周期性的指标使用 deriv,白天增长、夜间回落被平均成接近零,趋势问题被掩盖
  • 窗口过短时噪声主导,告警反复触发与恢复,值班逐渐忽略该规则

数据来源与参考

  • Prometheus 文档 · deriv()
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌