最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Grafana 如何使用状态历史面板展示服务可用性
时间:2026-08-17 20:30:48 编辑:袖梨 来源:一聚教程网
Grafana没有“状态历史面板”,但可通过State Timeline面板、Time series+Value Mappings、叠加统计信息三类方式实现:一、用State Timeline直接展示布尔/枚举状态变化;二、用Time series退化为色块模拟状态条;三、添加Stat和Table面板量化可用率与变更记录。
Grafana 本身没有叫“状态历史面板”的内置面板类型,但用户常指的其实是 State Timeline 面板(状态时间线)或通过 Time series + Value Mappings + Thresholds 组合实现的服务可用性历史展示。这类面板的核心目标是:把离散的健康状态(如 1/0、up/down、healthy/unhealthy)按时间轴可视化,清晰呈现服务在一段时间内的可用性波动、中断时段和恢复节奏。
下面分三类实用方式说明:
一、用 State Timeline 面板直接展示状态变化
这是最贴近“状态历史”需求的原生方案(Grafana v9.0+ 默认支持):
- 适用场景:服务探针返回布尔型或枚举型指标(如
probe_success{job="hunyuan-ocr"} = 1表示存活,0表示失败) - 操作步骤:
- 新建面板 → 选择 State Timeline 类型
- 查询 PromQL,确保只返回单条时间序列(如
probe_success{job="hunyuan-ocr", instance=~"ocr-prod-.*"}) - 在 Field options 中启用 Map numeric values,设置:
-
0→"Down"(红色) -
1→"Up"(绿色)
-
- 可开启 Show legend 和 Fill gaps,让中断区间连续填充,便于识别宕机时长
二、用 Time series 面板 + Value Mappings 模拟状态历史
兼容旧版本 Grafana,且更灵活:
- 查询返回带时间戳的状态值(例如
up{job="nginx"} or vector(1)) - 在面板选项中:
- 设置 Stat 为
None(禁用聚合) - 开启 Value mappings:
-
0→❌ Down -
1→✅ Up
-
- 关闭 Show value,只保留图例和颜色标识
- 设置 Stat 为
- 效果:折线图退化为垂直色块,横轴是时间,纵轴无意义数值,视觉上就是一段段彩色“状态条”
三、叠加统计信息强化可用性解读
光看状态还不够,需量化:
- 在同一仪表盘添加一个 Stat 面板,计算最近 1 小时可用率:
100 * avg_over_time(probe_success{job="hunyuan-ocr"}[1h])单位设为
%,阈值标红(如<99.5%) - 再加一个 Table 面板,列出最近 5 次状态变更:
probe_success unless probe_success offset 30s
配合 Sort by time descending,能快速定位最后一次宕机起止时间
注意:所有状态类指标必须由被监控服务主动暴露(如 Prometheus Exporter 的 /probe 端点),或通过 Blackbox Exporter 主动拨测生成。不建议用 absent() 或 count() 这类推断逻辑——它们反映的是“没数据”,而非“服务不可用”,容易误判。
本质上,服务可用性不是数字大小的问题,而是“是否在说话”的问题。State Timeline 把每一次心跳变成可视的刻度,让运维一眼看出:它刚才停跳了 47 秒,现在又稳住了。