设计原则
好的 dashboard 先回答是否需要行动、严重程度、影响范围、责任人和证据路径;图表只是支持分诊的证据层。
大理论
运营看板不是指标陈列馆。它的核心任务是帮助用户快速判断“发生了什么、严重到什么程度、影响哪里、谁负责、下一步做什么”。KPI 卡、告警 rail、趋势图、表格、日志和详情抽屉应该组成一条分诊路径:先看状态,再看异常,再看证据,最后行动或升级。
小知识点
- 先写 triage question,再排版:What changed? How bad? Where? Who owns it? What next?
- 指标分层:primary KPI 直接决定是否行动,diagnostic metric 解释原因,context metric 帮助比较,decorative metric 删除或降级。
- 首行只放 3-5 个决策 KPI。每个 KPI 至少包含 value、unit、period、baseline、delta/trend、threshold、freshness、severity label、explanation 和 evidence link。
- 告警严重度不能只靠颜色。critical/warning/info/success/neutral 同时用文本标签、图标/形状、边框/语义色、趋势和帮助文案。
- 阈值要有来源:SLA、percentile、anomaly、manual 或 static;用户需要知道异常是规则触发还是模型判断。
- Alert rail 按 severity、recency、blast radius、owner 和 state 排序;critical alert 必须给 owner、next action、escalation 和 evidence path。
- acknowledged、muted、resolved 是状态,不是删除。ack 降噪但保留,mute 显示原因和过期时间,resolved 进入 history/audit trail。
- 分析区只解释 top signal:趋势、cohort、表格、地图或日志应回答为什么异常,而不是展示所有可画的数据。
- 移动端优先 alert-first:顶部状态摘要、关键 KPI、可折叠筛选、告警列表和主要行动;不要把桌面图表缩到不可读。
设计判断
一个 dashboard 如果 30 秒内能让操作者说出当前健康状态、最严重异常、影响范围、负责人、下一步行动和证据入口,分诊成立。若用户只能看到很多漂亮图表,却不知道是否要处理、谁处理、如何处理,就是指标墙。
实现建议
建立 DashboardTriageModel:audience、systemName、timeScope、freshness、filters、primaryKpis、diagnosticMetrics、contextMetrics、alerts、thresholdSources、owners、actions、auditStates、detailPanels。KPI component 提供 accessible name,包含 metric、value、unit、period 和 state;使用 tabular numbers、稳定 grid/card 尺寸、URL 可复现 filters/time range、data freshness/timezone、loading/empty/error/stale/partial data 分支和语义 CSS variables。告警操作用真实 button/link,不把 acknowledge/mute/resolve 做成 hover-only 图标。
反例/风险
所有卡片同色同权重;红色数字但没有阈值和解释;告警没有 owner 或 next action;静音告警没有原因和过期时间;resolved alert 消失导致无法审计;图表 hover 才能看到异常值;数据 freshness 缺失;移动端横向滚动整页;metric 变化动画让数字难读。
案例分析
NN/g 把 dashboard 定义为单页数据可视化集合,用于快速提供可行动的 at-a-glance 信息,并强调 dashboard overview 要利用预注意加工帮助快速理解。Grafana alerting best practices 说明真实告警系统要面向复杂系统、不完美信号和 on-call 人员;Grafana 还支持把 alert rule 链接到 dashboard panel,让响应者知道去哪里调查。Carbon status indicators 用于帮助用户注意页面中的重要变化、优先任务和状态;Carbon notification 区分 inline、toast、actionable 等反馈位置。Atlassian badge/lozenge/flag 则把数字状态、对象状态和短反馈拆成不同组件语义。它们共同证明:dashboard 告警设计需要把信号、严重度、证据、反馈和行动范围分层。
来源链接
NN/g Dashboards: https://www.nngroup.com/articles/dashboards-preattentive/
NN/g Data Visualizations for Dashboards: https://www.nngroup.com/videos/data-visualizations-dashboards/
Grafana Alerting Best Practices: https://grafana.com/docs/grafana/latest/alerting/guides/best-practices/
Grafana Link Alert Rules to Panels: https://grafana.com/docs/grafana/latest/alerting/alerting-rules/link-alert-rules-to-panels/
Carbon Status Indicators: https://carbondesignsystem.com/patterns/status-indicator-pattern/
Carbon Notifications: https://carbondesignsystem.com/components/notification/usage/
Atlassian Badge: https://atlassian.design/components/badge/badge/usage
Atlassian Lozenge: https://atlassian.design/components/lozenge
Atlassian Flag: https://atlassian.design/components/flag
Agent 指令
先写分诊问题;把指标分为 primary/diagnostic/context/decorative;顶部保留 3-5 个决策 KPI;告警按 severity、recency、blast radius、owner 和状态排序;每个异常都有 owner、next action、evidence link 和 ack/mute/resolve/audit 状态。