Grafana Dashboard 设计
一个 Dashboard 应服务于明确的读者和决策。概览看板回答是否有影响,服务看板回答影响范围,排障看板提供变量、TopN、日志和追踪下钻。不要把所有原始指标堆到同一页。
1. Dashboard 基础
Dashboard 由 Folder、Row、Panel、Query、变量、注释和链接组成。Folder 是组织和授权的基本单位,建议按平台、应用团队、环境或业务域划分。
Dashboard JSON 应通过 Provisioning 或 Terraform 纳入 Git。导入社区 Dashboard 后先另存到自有 Folder,核对数据源 UID、变量、PromQL 与标签,再作为团队基线维护。
2. Panel 类型
| 类型 | 适用场景 | 设计注意事项 |
|---|---|---|
| Time series | QPS、CPU、延迟等趋势 | 统一单位、时间范围和颜色语义 |
| Stat | 当前值与阈值 | 信息紧凑,适合首屏关键状态 |
| Gauge | 大屏或单一容量状态 | 不应占据过多空间 |
| Table | 实例、版本、TopN 明细 | 支持排序、过滤和下钻 |
| Heatmap | 延迟桶、密度分布 | 适合发现长尾与突发峰值 |
3. Dashboard 设计原则
- 顶部放可用性、错误率、延迟、告警和关键容量;细节放在下钻页。
- 同类指标使用相同单位和颜色,百分比统一为 0 到 100 或 0 到 1。
- 查询显式带上
cluster、environment或namespace,避免混合环境数据。 - 在面板描述中说明指标含义、窗口、单位和负责人。
- 为异常面板配置 Data link,跳转到日志、Trace、运行手册或服务详情。
4. 常用 Dashboard
| 对象 | 首屏信号 |
|---|---|
| Linux 主机 | CPU、可用内存、文件系统、I/O、网络错误 |
| Kubernetes | 集群容量、Node Ready、工作负载副本、Pod 重启、PVC |
| MySQL | 连接、慢查询、复制、锁、InnoDB 缓冲与磁盘 |
| Redis | 内存、命中率、连接、复制、阻塞与延迟 |
| Java 应用 | QPS、错误率、延迟、JVM 堆、GC、线程池 |
看板工程化与查询规范见 监控实践。