State timeline 是什么
State timeline 是 Grafana 的状态条带面板,把离散状态按时间铺成一行行色块:哪个实例、在哪段时间里处于异常,看图即可得结论,不必在折线里数点。它适合取值离散且数量有限的信号,例如存活状态 up、主从角色、发布阶段、连接池健康度。与折线图相比,它把「有没有、持续多久」表达得更直接。
基本信息
| 适用平台 | Grafana 8+ 内置面板类型 |
|---|---|
| 数据要求 | 离散数值或字符串,通常先用 max by 归约成单序列 |
| 关键选项 | Merge equal consecutive values、Row height、阈值 steps |
| 权限要求 | 看板 Editor 及以上 |
典型使用场景
- 目标存活:各实例 up 状态铺成行,一眼看出哪台在哪个时段掉线
- 角色变化:数据库主从切换、Kubernetes 节点角色变化的时间分布
- 发布阶段:把灰度、全量等阶段当作状态值,与异常时段在同一时间轴对照
- 依赖健康:依赖组件是否可用的整月视图,用于稳定性复盘
- 值班交接:用过去 24 小时的状态条带替代口头描述,交接更准确
状态查询与面板设置
状态查询与面板设置
# 各实例存活状态(0 红、1 绿),先归约成单序列再喂给面板
max by (instance) (up)
# 面板侧常用设置
# Merge equal consecutive values 合并连续相同值,条带更整块
# 阈值 steps:0 -> 红,1 -> 绿
# Row height 调大,便于多实例场景逐行阅读
# 非 0/1 的业务状态先用记录规则归一化,再交给状态面板
max by (instance) (mysql_up)关键设置与效果
| 设置 | 作用 | 注意 |
|---|---|---|
| Merge equal values | 合并连续相同状态 | 跳变频繁时几乎无效,先聚合粒度 |
| Value mappings | 数值转文案与颜色 | 比只靠阈值更直观,语义要固定 |
| Row height | 行高 | 实例多时调到刚好能分辨 |
| Time range | 观察窗口 | 窗口过短只能看到最近一次抖动 |
状态条带的表达能力取决于数据粒度:原始数据秒级跳变会切碎色块,先按业务时长(如 1 分钟)聚合再展示,才看得出「持续了多久」。