Reduce 转换是什么
Reduce 是 Grafana 的转换之一,把多条时间序列压缩成「每个序列一行」:指定统计量(Last non-null、Mean、Max、Min 等)并选择 Series to rows 等模式,是 TopN 表、巡检表、异常清单这类面板的常用起点。它把「一段时间内的趋势」变成「此刻各对象的状态快照」,让表格可以直接排序、筛选与着色,也能导出成 CSV 对账。
基本信息
| 适用平台 | Grafana 8+,位于 Transformations → Reduce |
|---|---|
| 常用统计量 | lastNotNull、mean、max、min、sum、count |
| 模式 | Series to rows、Reduce fields |
| 典型链路 | Reduce → Organize fields → 表格排序 |
| 注意 | Series to rows 会丢掉时间维度 |
典型使用场景
- TopN 清单:把各实例峰值归约成一行,排序取前 10 做成容量看板
- 巡检表:把近 24 小时错误数归约成一行,配合阈值着色直接当日报
- 容量基线:mean 与 max 并列展示,快速看出均值正常但峰值超限的实例
- 状态汇总:多实例 up 归约后统计异常台数,作为总览的一句话结论
- 导出对账:表格数据导出 CSV,与资产系统核对监控覆盖面
转换配置与后续步骤
转换配置与后续步骤
{"id": "reduce",
"options": {"reducers": ["lastNotNull", "mean", "max"],
"mode": "seriesToRows"}}
# 面板侧后续步骤:
# Organize fields 整理列名 -> 表格按 max 降序排序 -> 阈值着色突出超限行常见统计量与用途
| 统计量 | 含义 | 常见用途 |
|---|---|---|
| lastNotNull | 最后一个非空值 | 当前状态快照 |
| mean | 窗口内均值 | 容量基线与趋势对照 |
| max 与 min | 窗口内极值 | 峰值告警与容量评估 |
| count | 样本条数 | 数据完整性判断 |
Series to rows 会把时间维度整列丢掉:需要保留趋势时不要接这一步,这类需求应该用折线图加分组,或者另做一张表。
使用步骤
- 先写出能返回多序列的查询,确认序列数量与分组维度符合预期
- 在 Transformations 里添加 Reduce,勾选需要的统计量组合
- 模式选择 Series to rows,得到「每个序列一行」的表格雏形
- 用 Organize fields 去掉多余列并给关键列改中文名,便于值班人阅读
- 最后加排序与阈值着色,让超限行在长列表里一眼可见
统计量的命名要跟表格列名对齐:同一份巡检表里既出现均值又出现峰值时,列名写成「平均使用率」「峰值使用率」比 mean、max 更能避免误读。