# PagerDuty 页面与信息架构设计 ## 1. 文档目标 本文档在 `PagerDuty_MVP_产品需求清单.md` 基础上,定义 PagerDuty 风格 Incident Management MVP 的页面结构、导航方式、核心信息组织方式和关键页面布局。 目标是帮助产品、设计和研发统一以下内容: 1. 整个产品有哪些主要页面。 2. 这些页面如何通过导航组织起来。 3. 每个页面最重要的信息模块是什么。 4. 用户完成关键任务时会经过哪些页面。 ## 2. 信息架构设计原则 ### 2.1 以 Incident 为中心 系统中的大部分操作最终都应回到 `Incident`: - 事件进来是为了产生或更新 Incident - 值班和升级是为了找到 Incident 的处理人 - 状态更新和订阅是围绕 Incident 协同 - 复盘是 Incident 关闭后的延续 因此导航和页面设计都应让用户快速进入 Incident。 ### 2.2 以任务流而不是配置流组织页面 用户最常见的任务顺序不是“先配规则,再看用户,再看服务”,而是: 1. 看见问题 2. 确认谁在处理 3. 找到上下文 4. 继续协作 5. 最后回看规则或排班是否合理 因此首页和主导航应优先暴露运行态页面,而不是后台配置页。 ### 2.3 运行态与配置态分离 建议把产品分成两种视角: - 运行态 - Incidents - Services - On-call - Reports - Reviews - 配置态 - Event Orchestration - Escalation Policies - Schedules - Users / Teams 这样能避免管理配置和处理故障混在一起。 ## 3. 顶层导航建议 MVP 推荐左侧一级导航如下: 1. `Incidents` 2. `Services` 3. `On-call` 4. `Reviews` 5. `Analytics` 6. `Settings` 其中 `Settings` 下再承载配置型模块。 ### 3.1 一级导航含义 | 一级导航 | 目标用户 | 核心价值 | | --- | --- | --- | | `Incidents` | 一线响应人、团队负责人 | 看当前故障、处理故障 | | `Services` | 服务负责人、管理员 | 看服务与关联 Incident | | `On-call` | 值班人、排班管理员 | 看当前值班与排班 | | `Reviews` | 负责人、管理者 | 管理复盘与行动项 | | `Analytics` | 管理者、平台运营 | 查看运营指标 | | `Settings` | 管理员 | 管理编排、升级、人员等配置 | ## 4. 页面地图 ## 4.1 一级页面结构 ```text Incidents Incident List Incident Detail Create Incident Services Service List Service Detail Create/Edit Service On-call On-call Overview Schedule List Schedule Detail Escalation Policy List Escalation Policy Detail Reviews Review List Review Detail Analytics Dashboard Settings Event Orchestration Users Teams Notification Settings Audit Log ``` ## 4.2 关键跳转关系 - Incident List -> Incident Detail - Incident Detail -> Service Detail - Incident Detail -> Review Detail - Service Detail -> Escalation Policy Detail - Escalation Policy Detail -> Schedule Detail - On-call Overview -> Schedule Detail - Review Detail -> Incident Detail ## 5. 页面详细设计 ## 5.1 `Incidents` 列表页 ### 5.1.1 页面目标 这是最重要的运行态入口,用户要能在这里快速回答: - 现在有哪些未关闭 Incident - 哪些最紧急 - 哪些无人接手 - 哪些已经在升级 ### 5.1.2 页面模块 建议包含以下区域: 1. 顶部筛选栏 2. 统计摘要卡片 3. Incident 列表表格 4. 快速操作区 ### 5.1.3 筛选条件 - 状态 - 优先级 - 服务 - 团队 - 是否已确认 - 是否升级中 - 时间范围 ### 5.1.4 列表字段 - Incident 标题 - 服务 - 状态 - 优先级 - 当前 assignee - 当前 on-call - 触发时间 - 最近更新时间 - 升级层级/升级状态 ### 5.1.5 快速操作 - 创建 Incident - Acknowledge - Resolve - Add responder - Add subscriber ## 5.2 `Incident Detail` 详情页 ### 5.2.1 页面目标 这是平台最核心的页面,用户要在一个页面内完成大部分响应动作。 ### 5.2.2 页面布局建议 建议采用三栏或二栏布局。 方案 A:三栏布局 - 左栏:基础信息和状态卡 - 中栏:Timeline 与状态更新 - 右栏:响应人、订阅人、关联对象 方案 B:二栏布局 - 主栏:Timeline - 侧栏:基础信息 + 人员 + 快速操作 MVP 建议先做二栏布局,复杂度更低。 ### 5.2.3 顶部头部信息 - Incident 标题 - 状态标签 - 优先级 - 所属服务 - 创建时间 - 当前负责人 ### 5.2.4 侧栏模块 - 基础信息卡片 - Responders - Subscribers - Escalation 状态 - 关联链接 - Service - Schedule - Escalation Policy - Review ### 5.2.5 主栏模块 - Status Updates - Unified Timeline - Notes ### 5.2.6 页面动作 - Acknowledge - Resolve - Reopen - Add responder - Add subscriber - Publish status update - Add note - Create review ## 5.3 `Create Incident` 页面/弹窗 ### 5.3.1 页面目标 允许用户手工声明事故,不依赖外部事件接入。 ### 5.3.2 表单字段 - 标题 - 服务 - 优先级 - 描述 - 指派对象 - 用户或升级策略 - 附加响应人 - 订阅人 ### 5.3.3 交互建议 MVP 可采用右侧抽屉或模态框,不必单独做复杂页面。 ## 5.4 `Services` 列表页 ### 5.4.1 页面目标 用于查看和维护服务对象,回答: - 系统里有哪些服务 - 每个服务归谁负责 - 当前是否有打开的 Incident ### 5.4.2 列表字段 - 服务名 - 所属团队 - 默认升级策略 - 当前 on-call - 打开 Incident 数 ### 5.4.3 页面动作 - 创建服务 - 编辑服务 - 查看服务详情 ## 5.5 `Service Detail` 页面 ### 5.5.1 页面目标 展示一个服务的运行态概况和配置入口。 ### 5.5.2 页面模块 - 服务基础信息 - 关联升级策略 - 当前 on-call - 最近 Incident - 服务维度指标卡 ### 5.5.3 关键跳转 - 跳转到 `Escalation Policy Detail` - 跳转到 `Schedule Detail` - 跳转到该服务的 Incident 列表 ## 5.6 `On-call Overview` 页面 ### 5.6.1 页面目标 快速回答: - 现在谁在值班 - 哪些服务的 on-call 正常 - 有没有排班空洞 ### 5.6.2 页面模块 - 当前 on-call 总览 - 即将交班提醒 - 关键服务 on-call 列表 - 异常排班提示 ### 5.6.3 适合用户 - 值班经理 - 团队负责人 - 平台管理员 ## 5.7 `Schedule List` 列表页 ### 5.7.1 列表字段 - 值班表名称 - 时区 - 当前 on-call - 下一位 on-call - 最近更新时间 ### 5.7.2 页面动作 - 创建值班表 - 编辑值班表 - 查看排班详情 ## 5.8 `Schedule Detail` 详情页 ### 5.8.1 页面目标 帮助管理员理解和维护排班结构。 ### 5.8.2 页面模块 - 基础信息卡片 - 当前 on-call 信息 - 排班时间视图 - 临时替班管理 - 关联升级策略列表 ### 5.8.3 页面布局建议 - 顶部摘要卡 - 中部日历/时间轴 - 下部参与人配置区 ## 5.9 `Escalation Policy List` 列表页 ### 5.9.1 页面目标 用于维护升级规则链。 ### 5.9.2 列表字段 - 策略名称 - 关联服务数 - 规则级数 - 更新时间 ## 5.10 `Escalation Policy Detail` 详情页 ### 5.10.1 页面目标 清晰展示升级链结构,让管理员一眼知道超时后会通知谁。 ### 5.10.2 页面模块 - 基础信息 - 升级层级可视化 - 关联服务 - 关联值班表 ### 5.10.3 可视化建议 建议采用纵向步骤流: ```text Level 1 -> wait 5m -> Level 2 -> wait 10m -> Level 3 ``` 比表格更适合理解升级链。 ## 5.11 `Event Orchestration` 页面 ### 5.11.1 页面目标 让管理员维护事件路由与编排规则。 ### 5.11.2 页面结构建议 - 顶部规则说明区 - 规则列表 - 规则详情编辑抽屉 - 测试事件模拟区 ### 5.11.3 列表字段 - 规则名称 - 状态 - 优先级 - 条件摘要 - 动作摘要 - 更新时间 ### 5.11.4 MVP 特别建议 即使第一版不做复杂可视化规则编辑器,也最好提供: - 条件摘要展示 - 命中结果预览 - 测试样例事件 否则规则很难维护。 ## 5.12 `Users` 页面 ### 5.12.1 列表字段 - 用户名 - 邮箱 - 团队 - 联系方式状态 - 当前是否 on-call ### 5.12.2 详情能力 - 联系方式配置 - 通知方式偏好 - 所属团队 - 关联值班表 ## 5.13 `Teams` 页面 ### 5.13.1 页面模块 - 团队列表 - 成员列表 - 关联服务 - 关联升级策略 ## 5.14 `Reviews` 列表页 ### 5.14.1 页面目标 帮助团队查看哪些 Incident 已复盘,哪些还未完成。 ### 5.14.2 筛选条件 - 复盘状态 - 所属团队 - 服务 - 时间范围 ### 5.14.3 列表字段 - 复盘标题 - 关联 Incident - 负责人 - 状态 - 最近更新时间 ## 5.15 `Review Detail` 页面 ### 5.15.1 页面目标 承载 MVP 版复盘记录与行动项。 ### 5.15.2 页面模块 - 基础信息 - Incident 摘要 - 时间与影响 - Takeaways - Action Items - 状态流转 ### 5.15.3 第一版建议 MVP 不做复杂多标签页,直接一个长页即可,降低实现复杂度。 ## 5.16 `Analytics Dashboard` 页面 ### 5.16.1 页面目标 面向负责人和管理者展示运行指标。 ### 5.16.2 页面模块 - 指标卡 - Incident 总量 - MTTA - MTTR - 升级次数 - 趋势图 - 服务排行 - 响应人负载分布 ## 5.17 `Audit Log` 页面 ### 5.17.1 页面目标 给管理员查看核心配置变更与关键运行事件。 ### 5.17.2 页面范围 - 规则配置变更 - 值班表变更 - 升级策略变更 - Incident 关键状态变更 ## 6. 核心用户任务流 ## 6.1 任务流一:处理新 Incident ```text Incident List -> Incident Detail -> Acknowledge -> Add responder / Publish status update -> Resolve -> Create review ``` ## 6.2 任务流二:排查通知为什么没命中 ```text Incident Detail -> Service Detail -> Escalation Policy Detail -> Schedule Detail ``` ## 6.3 任务流三:新增一个服务接入 ```text Services -> Create Service -> Bind Escalation Policy -> Configure Event Orchestration Rule -> Send test event ``` ## 6.4 任务流四:进行复盘 ```text Incident Detail -> Create Review -> Review Detail -> Add Takeaways -> Add Action Items -> Mark Completed ``` ## 7. 信息层级建议 ### 7.1 Incident 详情页的信息优先级 P0 信息: - 当前状态 - 谁在处理 - 服务 - 最近状态更新 - 时间线 P1 信息: - 升级情况 - 订阅人 - 关联复盘 P2 信息: - 详细配置关系 - 历史关联对象 ### 7.2 配置页面的信息优先级 P0 信息: - 当前配置是什么 - 影响哪些对象 - 是否启用 P1 信息: - 编辑历史 - 测试验证结果 ## 8. 设计与前端实现建议 ### 8.1 MVP 优先用表格 + 详情页 对这类运维产品,第一版不需要追求过度炫技的卡片化布局。对 Incident、Service、Schedule、Policy 这类对象,`列表 + 详情` 是最稳的结构。 ### 8.2 时间线组件应尽早统一 Incident Timeline 是全系统最关键的基础展示组件,建议尽早沉淀统一样式,复用到: - Incident 详情 - 复盘详情 - 审计视图 ### 8.3 关系跳转要强 这类产品的用户经常在对象之间来回跳转,因此页面内应加强: - Service 链接 - Schedule 链接 - Escalation Policy 链接 - Review 链接 不要让用户只能靠返回列表找对象。 ## 9. MVP 页面清单总结 推荐首批交付页面如下: 1. `Incident List` 2. `Incident Detail` 3. `Create Incident` 4. `Service List` 5. `Service Detail` 6. `On-call Overview` 7. `Schedule List` 8. `Schedule Detail` 9. `Escalation Policy List` 10. `Escalation Policy Detail` 11. `Event Orchestration` 12. `Users` 13. `Teams` 14. `Review List` 15. `Review Detail` 16. `Analytics Dashboard` 17. `Audit Log` ## 10. 结论 如果从信息架构角度总结 PagerDuty 风格产品,最关键的不是页面多,而是“是否让用户在最短路径上找到故障、找到责任人、找到上下文、找到下一步动作”。 因此 MVP 页面设计应坚持三个原则: 1. 运行态优先于配置态。 2. Incident 详情页优先于花哨首页。 3. 对象之间必须强链接跳转。 只要这三点做对,后续再扩展 Status Page、Narrative Builder、AIOps 面板都会比较自然。