Grafana 常用面板类型深度探索:从基础到高级可视化
Grafana 提供了丰富的可视化面板类型,每种都有其独特的用途和配置方式。掌握这些面板的深度配置,能让你的仪表盘不仅美观,更具备强大的分析能力。
本文将深入详解 6 种最常用的面板类型:Time series、Stat、Table、Bar Gauge、Heatmap、Logs,涵盖其核心用途、高级配置技巧和最佳实践。
一、1. Time Series(时序图)——趋势分析的基石
用途
- 显示指标随时间的变化趋势
- 分析波动、周期、异常
- 最常用的面板类型
核心配置详解
(1)图例(Legend)
- 显示内容:
{{job}},{{instance}},{{method}} - 位置:右下、右上、隐藏
- 值显示:
Last,Min,Max,Avg,Current
✅ 推荐:显示
Current和Max,便于快速判断状态。
(2)X/Y 轴(Axes)
- Y 轴单位:
percent (0-1),bytes,seconds,requests per second - 刻度模式:线性、对数(适合波动大的指标)
- 范围:自动、固定(如
0~100)
(3)视觉样式
| 选项 | 说明 |
|---|---|
| Line width | 线条粗细(1~5) |
| Fill | 填充区域(0~10) |
| Stacking | 堆叠模式(Normal, 100%) |
| Gradient mode | 渐变填充(Hue, Opacity) |
| Null value | Null as zero, Connected, Null |
(4)标记点(Point & Thresholds)
- Points:显示数据点
- Thresholds:设置警戒线(如红色表示 >80%)
- 支持多阈值(Warning, Critical)
- 可设置为绝对值或百分比
(5)堆叠(Stacking)实战
# 按状态显示 HTTP 请求
rate(http_requests_total{status=~"2..|3..|4..|5.."}[5m])
- 启用
Stacking: 100%→ 显示各状态占比 - 启用
Stacking: Normal→ 显示总量
✅ 适合分析错误率、流量分布。
二、2. Stat(统计面板)——醒目的关键指标
用途
- 显示一个单一、醒目的数值
- 适用于:当前在线用户数、成功率、延迟 P95
配置技巧
(1)数值显示
- Value options:
Name:显示指标名Value:显示数值Delta:变化量Change:变化率
- Prefix/Suffix:添加单位(如
ms,%,人)
(2)颜色与状态
- Color mode:
Value:根据数值变色Background:背景变色None
- Thresholds:设置颜色阈值(绿/黄/红)
(3)大屏优化
- 字体大小:
Extra Large - 对齐方式:居中
- 背景:深色主题 + 高对比度
示例:P99 延迟 Stat 面板
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
- Unit:
ms - Thresholds:
0.5 → yellow,1 → red - Color mode:
Background
✅ 效果:延迟超标时面板变红,一目了然。
三、3. Table(表格)——明细数据展示
用途
- 展示原始数据、明细列表
- 支持排序、筛选、导出
高级配置
(1)字段映射(Field overrides)
- 为特定字段设置:
- Unit:
bytes,percent,currency - Color:基于值变色
- Display name:重命名列
- Link:添加跳转链接(如关联 TraceID)
- Unit:
(2)排序与分页
- 默认排序:按时间倒序
- 支持点击列头排序
- 分页:
10,25,100行/页
(3)格式化技巧
-- MySQL 查询示例
SELECT
created_at as "Time",
user_id as "User ID",
amount as "Amount",
status as "Status"
FROM payments
- 在 Table 中:
Amount→ Unit:currency(USD)Status→ Color:Success=green,Failed=redUser ID→ Link:/user/{{col}}
✅ 实现点击用户 ID 跳转到详情页。
四、4. Bar Gauge(条形图)——直观的数值对比
用途
- 类似 Stat,但用条形长度表示数值
- 适合对比多个指标或实例
配置要点
| 配置项 | 说明 |
|---|---|
| Orientation | 水平(Horizontal)或垂直(Vertical) |
| Bar size | 条形宽度 |
| Display mode | Gradient(渐变), Solid(纯色) |
| Value options | 显示数值、百分比、图标 |
| Thresholds | 决定颜色和长度 |
示例:多实例 CPU 使用率对比
1 - rate(node_cpu_seconds_total{mode="idle"}[5m])
- Visualization: Bar gauge
- Orientation: Vertical
- Thresholds:
70 → yellow,90 → red - Display:
Value+Gradient
✅ 效果:一眼看出哪台主机 CPU 最高。
五、5. Heatmap(热图)——分布分析利器
用途
- 显示值的分布情况,如请求延迟、响应大小
- 常用于分析 P99、长尾延迟
数据要求
- 必须是 Histogram 类型指标
- 或使用
heatmap模式转换时间序列
配置详解
(1)数据格式
# 直接使用 Prometheus Histogram
http_request_duration_seconds_bucket
# 或使用 histogram 函数(高级)
histogram(
rate(http_request_duration_seconds_count[5m]),
le
)
(2)Y 轴(Bucket)
- 显示延迟区间(
0.1s,0.5s,1s,+Inf) - 可对数刻度(Logarithmic)显示
(3)X 轴(时间)
- 时间序列维度
(4)颜色(Cell color)
- Scheme:
Spectrum,Reds,Blues - Cell values:显示计数或百分比
(5)模式(Mode)
Heatmap:标准热图Treemap:树状图,适合静态分布
典型场景
- 分析 API 接口的延迟分布
- 发现长尾请求(少数请求极慢)
- 优化 P99 性能
✅ 结合
histogram_quantile()使用,定位性能瓶颈。
六、6. Logs(日志面板)——与 Loki 深度集成
用途
- 在 Grafana 中直接查看日志
- 关联指标与日志上下文
前提
- 已配置 Loki 数据源
- Promtail 或其他采集器正在运行
配置要点
(1)查询日志
{job="api"} |= "error" | json
- 支持
|=,!=,| json,unpack
(2)可视化设置
- Show labels:显示日志标签
- Wrap lines:自动换行
- Deduplication:去重(
exact,signature) - Limit:限制日志条数
(3)交互功能
- 点击日志 → 查看上下文(前后 10 行)
- 点击字段 → 添加过滤条件
- 支持正则提取字段
(4)与指标联动
- 在同一个 Dashboard 中:
- 上方:Time series 显示错误率上升
- 下方:Logs 面板显示对应时间的错误日志
- 共享时间范围,一键定位根因
✅ 实现“指标异常 → 查看日志 → 定位错误”的完整闭环。
七、面板类型选择指南
| 需求 | 推荐面板 |
|---|---|
| 趋势分析 | ✅ Time series |
| 关键指标展示 | ✅ Stat |
| 多实例对比 | ✅ Bar gauge |
| 明细数据查看 | ✅ Table |
| 延迟分布分析 | ✅ Heatmap |
| 日志排查 | ✅ Logs |
| 状态占比 | ✅ Time series + Stacking |
| 业务报表 | ✅ Table + Stat |
八、最佳实践总结
| 实践 | 说明 |
|---|---|
| ✅ 合理搭配面板 | 一个 Dashboard 包含趋势、统计、明细 |
| ✅ 统一单位和颜色 | 提升可读性 |
| ✅ 使用变量增强交互 | 如 $host, $job |
| ✅ 添加注释标记事件 | 如发布、变更 |
| ✅ 优化移动端显示 | 调整面板大小 |
| ✅ 定期审查仪表盘 | 删除无用面板 |
九、总结
Grafana 的每种面板类型都是为特定场景设计的“工具”:
| 面板 | 比喻 | 适用场景 |
|---|---|---|
| Time series | 折线笔 | 趋势分析 |
| Stat | 数字牌 | 关键指标 |
| Table | 明细表 | 数据溯源 |
| Bar Gauge | 柱状尺 | 对比测量 |
| Heatmap | 热力图 | 分布洞察 |
| Logs | 日志本 | 错误排查 |
797

被折叠的 条评论
为什么被折叠?



