increase 是什么
increase 计算计数类指标在窗口内的增长总量,等价于速率乘窗口长度,适合回答过去一小时一共处理了多少请求。它同样内置处理了进程重启导致的归零,不会因为计数器重置而算出负值。
结果为什么是小数
它是外推估计值:窗口边界与样本点不对齐时,函数会按比例推算,因此出现小数并不代表统计错误。也正因为如此,跨天对账、精确报表这类场景不应依赖它,应使用原始计数做持久化差值。
基本信息
| 输入 | 计数类序列 |
|---|---|
| 等价关系 | 速率乘窗口秒数 |
| 精度 | 外推估计,结果为小数属正常 |
| 适用 | 趋势观察与规模量级判断 |
典型使用场景
- 业务量统计:过去一小时处理了多少请求
- 告警判断:短时间内的错误增量超过阈值
- 容量趋势:每日请求增量的历史变化
- 发布验证:发布后一段时间内的处理量对比
- 报表辅助:为非精确报表提供量级参考
增量与等价表达
增量与等价表达
# 过去 1 小时的请求增量
sum(increase(http_requests_total[1h]))
# 与速率乘窗口秒数等价,便于理解换算关系
sum(rate(http_requests_total[1h])) * 3600
# 错误增量告警:10 分钟内新增错误超过 100
sum(increase(http_requests_total{code=~"5.."}[10m])) > 100与速率的对应
| 表达 | 含义 | 适用问题 |
|---|---|---|
| increase | 窗口内累计增量 | 一共多少 |
| rate | 每秒平均速率 | 有多快 |
| rate 乘窗口秒数 | 与 increase 等价 | 理解换算关系 |
需要精确计数时用原始计数器做持久化差值:外推估计在窗口边界会带来偏差,不适合用于对账。
对可增可减的瞬时数值类指标使用 increase 没有意义:这类型指标的变化量直接做减法即可。
使用时的三个约定
- 窗口与统计周期对齐:按小时统计就用一小时窗口,减少边界偏差
- 保留聚合维度:需要按业务线分别统计时,分组要写清
- 与速率配合使用:量级看增量,趋势看速率,两者互补
增量类告警要设绝对阈值而不是比例:短窗口内基数小,比例阈值容易被个位数的失败触发。