933 lines
36 KiB
Markdown
933 lines
36 KiB
Markdown
# AIOps 智能运维平台:产品架构与商业化方案
|
||
|
||
## 1. 文档目标
|
||
|
||
本文档用于统一 AIOps 项目的技术架构、产品形态与商业化方向,作为:
|
||
|
||
- 研发设计与实施的基线文档
|
||
- 管理层立项评审与资源投入依据
|
||
- 面向客户的产品方案与售前材料母版
|
||
|
||
同时用于小团队条件下的范围控制与里程碑落地,确保先做成可用 MVP,再逐步扩展。
|
||
|
||
---
|
||
|
||
## 2. 产品定位与愿景
|
||
|
||
### 2.1 产品定位
|
||
|
||
面向中大型企业(金融、政务、制造、互联网)的 **企业级智能运维平台**,以“告警降噪 + 智能诊断 + 自动化自愈”为核心能力,帮助客户显著降低 MTTR、提升稳定性并实现运维能力沉淀。
|
||
|
||
### 2.2 产品愿景
|
||
|
||
构建“**感知 → 响应 → 决策 → 恢复 → 学习**”的智能闭环,形成可持续优化的运维中枢。
|
||
|
||
### 2.3 核心价值主张
|
||
|
||
- 从“人肉看告警”升级为“语义级事件治理”
|
||
- 从“专家经验驱动”升级为“知识库 + Agent 协同决策”
|
||
- 从“手工处置”升级为“可控自动化执行”
|
||
- 从“单点工具”升级为“私有化、可审计、可扩展的平台能力”
|
||
|
||
---
|
||
|
||
## 3. 目标客户与典型场景
|
||
|
||
## 3.1 目标客户画像
|
||
|
||
- 业务系统复杂:微服务/K8s/数据库/中间件并存
|
||
- 故障影响高:停机损失大、SLA 约束严
|
||
- 合规要求高:偏好私有化部署和全链路审计
|
||
- 运维团队压力大:告警量高、专家资源稀缺
|
||
|
||
### 3.2 典型应用场景
|
||
|
||
1. **夜间告警风暴治理**:分钟级完成去重、归并、关联。
|
||
2. **跨系统故障定位**:结合指标、日志、历史 SOP 自动生成 RCA。
|
||
3. **低风险故障自动自愈**:如 Pod 重启、HPA 扩容、服务摘流。
|
||
4. **运维知识沉淀**:将案例和处置过程沉淀为可检索 SOP。
|
||
|
||
---
|
||
|
||
## 4. 产品形态设计
|
||
|
||
### 4.1 产品形态(建议)
|
||
|
||
- **平台版(私有化)**:面向大型客户,支持本地部署与深度集成。
|
||
- **增强模块版**:在现有监控体系上增配“诊断与自愈模块”。
|
||
- **行业方案版**:金融版、政务版、制造版,提供行业预置 SOP 与策略模板。
|
||
|
||
### 4.2 角色与工作台
|
||
|
||
- **NOC/L1 运维**:告警收敛、工单联动、建议执行。
|
||
- **SRE/L2-L3**:RCA 验证、处置策略编排、规则优化。
|
||
- **运维负责人**:SLA、MTTR、团队效率与风险看板。
|
||
- **安全/审计**:审批、权限、操作留痕、审计报表。
|
||
|
||
### 4.3 产品功能包
|
||
|
||
| 功能域 | 核心能力 | 输出价值 |
|
||
| --- | --- | --- |
|
||
| 告警治理 | 去重、分组、抑制、路由、拓扑关联 | 降噪、聚焦关键事件 |
|
||
| 智能诊断 | 指标/日志联查、RAG 检索、RCA 生成 | 缩短定位时间 |
|
||
| 自愈执行 | 自动化脚本/Playbook、审批流、回滚 | 降低恢复时延 |
|
||
| 知识中枢 | SOP 管理、向量检索、案例复盘 | 经验资产化 |
|
||
| 治理与审计 | 权限分级、策略控制、全链路审计 | 可控合规 |
|
||
|
||
### 4.4 小团队 MVP 范围(6 个月)
|
||
|
||
**本期必须做(In Scope)**
|
||
|
||
- 事件中心:告警接入、去重分组、状态机流转
|
||
- Agent 诊断:基于 Dify 的诊断工作流与结构化 RCA 输出
|
||
- RAG 知识库:SOP 文档入库、检索、引用证据输出
|
||
- 自愈执行(低风险):重启/扩容等白名单动作 + 审批闸门
|
||
- 平台看板:MTTR、告警处理时长、RCA 准确率、自动恢复率
|
||
|
||
**本期暂不做(Out of Scope)**
|
||
|
||
- 全量 APM 能力替代(Trace 全栈深度分析)
|
||
- 复杂多租户计费与全功能商业化后台
|
||
- 全行业模板一次性覆盖
|
||
- 全自动高风险故障处置(默认人工审批)
|
||
|
||
### 4.5 职责矩阵(RACI)
|
||
|
||
| 工作项 | 前端工程师 | 后端工程师 | AI 工程师 | 运维/平台工程师 | PM |
|
||
| --- | --- | --- | --- | --- | --- |
|
||
| 事件中心与详情页 | R | C | C | I | A |
|
||
| Incident API 与状态机 | C | R | I | C | A |
|
||
| Dify 工作流与 RAG | C | C | R | I | A |
|
||
| 工具层 Python 服务 | I | C | R | C | A |
|
||
| 执行网关与审批流 | C | R | C | C | A |
|
||
| 审计中心与报表 | C | R | I | C | A |
|
||
| 故障注入测试与验收 | C | C | C | R | A |
|
||
|
||
说明:R=Responsible(负责执行),A=Accountable(最终负责),C=Consulted(协作),I=Informed(知会)。
|
||
|
||
---
|
||
|
||
## 5. 总体技术架构(路线 A 详细版)
|
||
|
||
当前内部统一参考图为 `AIOps_Practical_Route_Architecture.png`。这张图是路线 A 的逻辑架构图,重点回答“事件如何进入平台、如何形成诊断、如何受控执行、如何回流学习”,而不是回答“每个服务最终部署在哪台机器上”。
|
||
|
||

|
||
|
||
配套逐层说明文档见 `AIOps_Architecture_Diagram_Explanation.md`,可用于理解图中每一层为何存在、模块之间如何一一对应,以及这张图是如何从产品目标推导出来的。
|
||
|
||
路线 A 已从“增强版”升级为“可落地版”:
|
||
|
||
- 平台核心链路(事件流转、审批审计、执行控制)自研
|
||
- Dify 作为 Agent + RAG 中枢,通过 API 向平台开放能力
|
||
- 各层解耦,后续可平滑替换模型或 Agent 框架
|
||
- 图中展示的是逻辑能力分层,MVP 阶段允许多个模块合并实现
|
||
|
||
## 5.1 架构图阅读说明与分层(职责到模块级)
|
||
|
||
### 这张图是怎么来的
|
||
|
||
- 从 AIOps 的闭环目标倒推:采集、治理、编排、诊断、执行、学习。
|
||
- 只保留小团队 6 个月内必须落地的模块,把“概念能力”收敛成“可实现组件”。
|
||
- AI 能力放在 `Dify Platform + Agent Brain`,但执行仍必须经过审批、策略和审计约束。
|
||
- 因此形成 `Layer A -> Layer F` 六层逻辑:数据接入、上下文补齐、事件成案、AI 判断、受控执行、复盘学习。
|
||
|
||
### 架构图怎么读
|
||
|
||
- 自下而上看主链路:`NormalizedEvent -> IncidentContext -> Incident -> RCA Result -> Incident Closure & Execution Results -> Knowledge Update`
|
||
- 蓝色实线表示主控制流 / API 调用 / 执行 / 审计;红色虚线表示复盘反馈与知识优化闭环
|
||
- 左侧和中部偏事件主链路,顶部偏执行治理,右侧偏学习与持续优化
|
||
|
||
### 图中名称与实现模块映射
|
||
|
||
| 图中展示名 | 实现模块/建议 | 作用 |
|
||
| --- | --- | --- |
|
||
| `collector-adapter` / `alert-webhook` / `event-normalizer` | 保持一致 | 接收并标准化多源告警 |
|
||
| `context-enricher` / `topology-resolver` / `change-correlator` | 保持一致 | 做标签统一、拓扑与变更关联 |
|
||
| `Incident Service` | `incident-service` | 统一 Incident 生命周期 |
|
||
| `Deduplication & Correlation Engine` | `dedupe-group-engine` + 关联规则 | 告警去重、分组、归并 |
|
||
| `Custom Gateway` | `platform-dify-gateway` 或平台代理层 | 封装 Dify 调用、结果标准化、审计打点 |
|
||
| `Agent Brain (Dify)` | Dify 工作流 + RAG | 诊断、推理、检索、建议 |
|
||
| `Approval Gateway` / `Execution Control with Policy Gateway` | `approval-service` + `execution-gateway` + `policy-engine` | 审批、策略校验、执行控制 |
|
||
| `Knowledge Feedback` / `kpi-dashboard` | `postmortem-service` + `knowledge-feedback-worker` + `kpi-dashboard` | 复盘、知识更新、指标评估 |
|
||
|
||
### A. 感知层(Observability Ingestion)
|
||
|
||
- 数据源:Prometheus、Alertmanager、Loki/ELK、CMDB、K8s Event、变更系统。
|
||
- 核心模块:`collector-adapter`、`alert-webhook`、`event-normalizer`。
|
||
- 产出对象:统一事件 `NormalizedEvent`(含 source、severity、labels、fingerprint)。
|
||
|
||
### B. 数据治理层(Normalization & Context)
|
||
|
||
- 核心职责:统一标签、拓扑关联、变更关联、历史事件关联。
|
||
- 核心模块:`context-enricher`、`topology-resolver`、`change-correlator`。
|
||
- 产出对象:`IncidentContext`(服务、依赖、变更、近期同类故障)。
|
||
|
||
### C. 流转编排层(Event Orchestration)
|
||
|
||
- 核心职责:去重分组、关联归并、状态机流转、升级通知、时间线沉淀。
|
||
- 核心模块:`incident-service`、`dedupe-group-engine`(对应图中 `Deduplication & Correlation Engine`)、`escalation-engine`、`timeline-service`。
|
||
- 状态机:`new -> triaged -> diagnosing -> remediating -> resolved/closed`。
|
||
|
||
### D. 智能决策层(Agent Brain, Dify)
|
||
|
||
- 图中展示为 `Custom Gateway + Dify Platform + Agent Brain (Dify)`。
|
||
- Dify 负责:工作流编排、模型调用、RAG 检索、多轮对话。
|
||
- 平台负责:通过 `platform-dify-gateway` 或平台代理层封装 Dify 调用、结果标准化、审计留痕与兜底逻辑。
|
||
- 核心输出:`RCA Result`(结论、置信度、证据链、影响范围、建议动作)。
|
||
|
||
### E. 执行与控制层(Execution & Guardrail)
|
||
|
||
- 核心职责:动作执行、审批闸门、策略控制、权限分级、回滚与审计。
|
||
- 核心模块:`action-registry`、`approval-service`、`policy-engine`、`execution-gateway`、`audit-service`。
|
||
- 图中的 `Approval Gateway` + `Execution Control with Policy Gateway` 对应实现上的审批流、策略引擎与执行网关组合。
|
||
- 执行器:Ansible、K8s API、脚本引擎(统一封装在 `execution-gateway` 后)。
|
||
|
||
### F. 学习与评估层(Learning Loop)
|
||
|
||
- 核心职责:复盘反馈、知识更新、评估看板、持续优化。
|
||
- 核心模块:`postmortem-service`、`knowledge-feedback-worker`、`kpi-dashboard`。
|
||
- 关键指标:MTTR、RCA 准确率、自动恢复率、人工驳回率。
|
||
- 关键输出:Runbook Update、Prompt / Workflow Optimization、Knowledge Base Curation。
|
||
|
||
## 5.2 部署拓扑(小团队可运维)
|
||
|
||
- 控制平面:`frontend` + `backend-api` + `incident-service` + `approval-service`
|
||
- AI 平面:`dify-api` + `dify-worker` + `vector-db`
|
||
- 数据平面:`postgres`(业务数据)+ `redis`(缓存与去重窗口)+ `kafka/nats`(事件总线)
|
||
- 可观测性平面:`prometheus` + `grafana` + `loki`
|
||
|
||
建议先单集群部署,按命名空间隔离:`aiops-core`、`aiops-ai`、`aiops-observability`。
|
||
|
||
## 5.3 路线 A 关键数据流(闭环)
|
||
|
||
1. 告警进入 `event-normalizer`,生成标准事件。
|
||
2. `dedupe-group-engine`(图中 `Deduplication & Correlation Engine`)聚合后生成或更新 Incident。
|
||
3. 状态进入 `diagnosing`,平台通过 `Custom Gateway` 调用 `Agent Brain (Dify)` 诊断工作流。
|
||
4. Dify 调用平台 Tools(metrics/logs/k8s/change)收集证据。
|
||
5. 返回结构化 `RCA Result` 与动作建议,平台按风险策略路由执行。
|
||
6. 低风险动作进入执行控制,高风险动作进入审批;结果写入时间线与审计。
|
||
7. 事件关闭后自动触发 `postmortem-service` 与 `knowledge-feedback-worker`,更新知识库与 KPI。
|
||
|
||
## 5.4 路线 A(小团队)技术实现细化
|
||
|
||
### 核心原则
|
||
|
||
- 核心事件链路自研(可控):状态机、升级策略、审批与审计。
|
||
- AI 能力通过 Dify 承载(提效):诊断、RAG、工具编排。
|
||
- 平台与 Dify 通过 API 解耦(可替换):避免绑定单一实现。
|
||
|
||
### Dify 在本架构中的边界
|
||
|
||
- Dify 负责:`诊断`、`建议`、`知识检索`、`多轮追问`。
|
||
- 平台负责:`状态变更`、`执行授权`、`审计归档`、`SLA 统计`。
|
||
- 禁止 Dify 直接改生产资源;所有执行请求必须经 `execution-gateway` 和 `policy-engine`。
|
||
|
||
### 项目仓库拆分建议(MVP 推荐)
|
||
|
||
当前架构建议按 3 个项目域推进,便于边界清晰、并行开发和后续替换演进:
|
||
|
||
- `aiops-platform`:平台主仓库,承载前端、平台后端、Incident 主流程、审批、审计、时间线、执行控制台。
|
||
- `aiops-tools`:工具与执行适配层仓库,承载查询工具、执行网关、安全治理与底层系统适配。
|
||
- `aiops-workflow`:Agent 工作流与 RAG 资产仓库,承载 Dify workflows、Prompt、知识库配置、结构化输出 schema、评测样例。
|
||
|
||
需要强调:这里是“项目域拆分建议”,不是要求一开始就做成 3 套重型微服务。MVP 阶段可以按 3 个仓库建设,但在部署上保持适度合并,优先保证联调效率与交付速度。
|
||
|
||
### 三个项目的职责边界
|
||
|
||
#### `aiops-platform`
|
||
|
||
- 负责“事件如何流转、谁来审批、结果如何展示”。
|
||
- 作为唯一主控层,持有 `incident`、`incident_timeline`、`remediation_action`、`audit_log` 等核心业务数据。
|
||
- 负责调用 `aiops-workflow` 获取结构化 RCA 与动作建议。
|
||
- 负责调用 `aiops-tools` 获取执行结果或触发审批后的受控动作。
|
||
- 不负责具体 AI 工作流编排细节,也不直接耦合底层 Prometheus / Loki / K8s API 协议。
|
||
|
||
#### `aiops-tools`
|
||
|
||
- 负责“如何安全地查询数据、如何安全地执行动作”。
|
||
- 提供 `query_metrics`、`query_logs`、`query_k8s`、`query_changes`、`execute_action` 等标准化能力。
|
||
- 负责鉴权、限流、超时、重试、幂等、审计打点、回滚入口等安全治理能力。
|
||
- 负责对接 Prometheus、Loki/ELK、K8s API、Ansible 等真实系统。
|
||
- 不负责 Incident 生命周期,不负责页面,也不负责最终 RCA 编排逻辑。
|
||
|
||
#### `aiops-workflow`
|
||
|
||
- 负责“如何做诊断、如何组织证据、如何输出结构化 RCA 和建议”。
|
||
- 以 Dify workflow 为核心承载方式,管理诊断工作流、Prompt、RAG 检索策略、输出 schema 和评测样例。
|
||
- 通过调用 `aiops-tools` 暴露的查询工具补齐证据链。
|
||
- 不持有 Incident 主状态,不承担审批和执行控制职责。
|
||
- 不允许直接拥有生产执行权限;执行建议必须回到平台决策。
|
||
|
||
### Workflow 优先于 Multi-Agent 的技术路线
|
||
|
||
在当前 MVP 阶段,推荐采用“Dify workflow 优先”的路线,而不是一开始引入复杂的 multi-agent 协作。原因如下:
|
||
|
||
- Workflow 更适合当前 AIOps 场景的固定输入、结构化输出和可审计要求。
|
||
- Workflow 更容易控制时延、成本、失败降级和结构化 schema 一致性。
|
||
- Workflow 更适合实现 `evidence -> conclusion -> confidence -> actions` 这类稳定链路。
|
||
- Multi-agent 更适合复杂探索型诊断,但会显著提升调试成本、时延和结果不确定性。
|
||
|
||
因此,本项目当前阶段的原则是:
|
||
|
||
- `skill` 在工程上优先实现为一个定义清晰、输入输出稳定的 workflow。
|
||
- 复杂诊断能力可在后续阶段逐步引入 agent 化节点,但不作为 MVP 的默认实现方式。
|
||
- 只有在复杂跨域故障、证据冲突、多轮角色协同确有必要时,再考虑将局部能力升级为 multi-agent。
|
||
|
||
### 建议组件分工
|
||
|
||
- 平台层(前后端自研,对应图中 Layer C / Layer E / 部分 Layer F):Incident API、状态机、执行控制台、审计中心。
|
||
- Workflow 层(对应图中 Layer D 的 Dify Platform):诊断工作流、RAG 管理、工具调用编排、结构化输出控制。
|
||
- 工具层(Python 服务,对应查询工具与执行器适配层):metrics/logs/k8s/change 查询与执行器网关。
|
||
|
||
### 三层项目详细设计
|
||
|
||
#### 1) 平台层(前后端自研)
|
||
|
||
**项目目标**
|
||
|
||
- 建立可控的 Incident 主流程,确保状态流转、审批执行、审计留痕可追踪。
|
||
|
||
**核心子系统**
|
||
|
||
- Incident API:事件创建、合并、分派、关闭。
|
||
- 状态机引擎:`new -> triaged -> diagnosing -> remediating -> resolved/closed`。
|
||
- 执行控制台:动作确认、审批流、执行结果可视化。
|
||
- 审计中心:操作日志、状态变更日志、执行审计日志。
|
||
|
||
**前端功能(你负责重点)**
|
||
|
||
- 事件列表页:筛选、分组、优先级、责任人。
|
||
- 事件详情页:时间线、RCA 卡片、证据引用、影响范围。
|
||
- 执行面板:建议动作、风险等级、审批与执行入口。
|
||
- 审计查询页:按 incident/operator/action 检索与导出。
|
||
|
||
**推进计划(建议)**
|
||
|
||
- Sprint 1:Incident API + 状态机 + 事件列表/详情基础页。
|
||
- Sprint 2:执行控制台 + 审批流 + 时间线完整回放。
|
||
- Sprint 3:审计中心 + KPI 看板 + 异常处理与告警。
|
||
|
||
#### 2) Workflow 层(Agent Workflow 与 RAG 中枢)
|
||
|
||
**项目目标**
|
||
|
||
- 提供可解释、可追踪的诊断能力,输出结构化 RCA 与动作建议。
|
||
- 以 workflow 方式固化诊断路径、工具调用顺序和输出 schema,优先保证稳定性与可审计性。
|
||
|
||
**核心子系统**
|
||
|
||
- 诊断 Agent 工作流:`incident_diagnosis`。
|
||
- 动作规划工作流:`action_planning`。
|
||
- 复盘工作流:`postmortem_summary`。
|
||
- RAG 管理:SOP 入库、分块、索引、召回与重排。
|
||
|
||
**必须输出能力**
|
||
|
||
- 结论(conclusion)
|
||
- 置信度(confidence)
|
||
- 证据链(evidence)
|
||
- 影响范围(impact_scope)
|
||
- 动作建议(actions: risk + mode)
|
||
|
||
**推进计划(建议)**
|
||
|
||
- Sprint 1:打通诊断工作流,接入 2-3 个基础工具(metrics/logs/k8s)。
|
||
- Sprint 2:完善 RAG(标签、重排、引用),稳定结构化输出。
|
||
- Sprint 3:加入低置信度降级策略与评测集回归(RCA 准确率、幻觉率)。
|
||
|
||
**实现原则**
|
||
|
||
- `skill` 优先沉淀为标准 workflow,而不是自由形态的 multi-agent 协作。
|
||
- 查询类 tool 可由 workflow 直接调用;执行类能力必须回到平台决策。
|
||
- 输出必须严格符合平台约定 schema,避免自由文本直接进入自动化链路。
|
||
|
||
#### 3) 工具层(Python 服务)
|
||
|
||
**项目目标**
|
||
|
||
- 作为 Dify 与生产系统之间的安全网关,提供标准化查询与受控执行。
|
||
|
||
**核心子系统**
|
||
|
||
- 查询工具:`query_metrics`、`query_logs`、`query_k8s`、`query_changes`。
|
||
- 执行网关:`execute_action`(统一鉴权、审批校验、回滚控制)。
|
||
- 安全治理:限流、超时、重试、幂等键、审计打点。
|
||
|
||
**推进计划(建议)**
|
||
|
||
- Sprint 1:完成查询类工具 API,先满足诊断证据采集。
|
||
- Sprint 2:完成执行网关,接入 Ansible/K8s API 低风险动作。
|
||
- Sprint 3:完善可靠性策略(超时重试/幂等/回滚)与审计标准。
|
||
|
||
#### 三层协同联调顺序(必须按顺序)
|
||
|
||
1. 平台层先完成 Incident 状态机与诊断触发入口。
|
||
2. Workflow 层返回结构化 RCA(先不接自动执行)。
|
||
3. 工具层完成查询工具后,补齐证据链。
|
||
4. 最后接执行网关与审批流,放开低风险自动动作。
|
||
|
||
### 平台调用 Dify 的 API 约定(建议)
|
||
|
||
1. `POST /api/ai/diagnose`:触发诊断工作流,输入 Incident 上下文。
|
||
2. `POST /api/ai/chat`:人工追问与补充诊断。
|
||
3. `POST /api/ai/tools/{toolName}`:受控工具调用(平台代理)。
|
||
4. `GET /api/ai/tasks/{taskId}`:查询异步任务状态与结果。
|
||
|
||
### 平台核心数据模型(建议)
|
||
|
||
- `incident`:id、status、severity、service、owner、start_at、end_at
|
||
- `incident_timeline`:incident_id、event_type、payload、operator、created_at
|
||
- `ai_rca_result`:incident_id、conclusion、confidence、impact_scope、evidence
|
||
- `remediation_action`:incident_id、action_name、risk、mode、approval_status、result
|
||
- `audit_log`:trace_id、actor、resource、operation、before、after、created_at
|
||
|
||
### API 契约与版本策略(建议)
|
||
|
||
- 统一前缀:`/api/v1`
|
||
- 版本升级原则:新增字段向后兼容;破坏性变更进入 `v2`
|
||
- 字段规范:时间统一 ISO8601,枚举统一小写下划线
|
||
- 错误规范:`{ code, message, request_id, detail }`
|
||
|
||
**核心接口最小集合(MVP)**
|
||
|
||
- `POST /api/v1/incidents`
|
||
- `GET /api/v1/incidents/{incident_id}`
|
||
- `PATCH /api/v1/incidents/{incident_id}/status`
|
||
- `POST /api/v1/incidents/{incident_id}/diagnose`
|
||
- `POST /api/v1/incidents/{incident_id}/actions/{action_id}/approve`
|
||
- `POST /api/v1/incidents/{incident_id}/actions/{action_id}/execute`
|
||
- `GET /api/v1/incidents/{incident_id}/timeline`
|
||
- `GET /api/v1/audit/logs`
|
||
|
||
### 后端 & AI 联调契约表(JSON 字段级)
|
||
|
||
#### A. 诊断触发:`POST /api/v1/incidents/{incident_id}/diagnose`
|
||
|
||
**Request JSON**
|
||
|
||
```json
|
||
{
|
||
"request_id": "req-20260325-0001",
|
||
"incident": {
|
||
"incident_id": "INC-2026-0001",
|
||
"title": "api latency high",
|
||
"status": "diagnosing",
|
||
"severity": "p1",
|
||
"service": "order-service",
|
||
"env": "prod",
|
||
"cluster": "cn-hz-prod-01",
|
||
"fingerprint": "svc:order|alert:latency_p95|env:prod",
|
||
"labels": {
|
||
"team": "sre",
|
||
"region": "cn-hz"
|
||
},
|
||
"started_at": "2026-03-25T09:10:11Z"
|
||
},
|
||
"time_window": {
|
||
"start": "2026-03-25T08:55:00Z",
|
||
"end": "2026-03-25T09:10:00Z"
|
||
},
|
||
"context": {
|
||
"recent_changes": [
|
||
{
|
||
"change_id": "chg-1189",
|
||
"type": "config",
|
||
"summary": "update db pool max",
|
||
"changed_at": "2026-03-25T08:58:00Z"
|
||
}
|
||
],
|
||
"related_incidents": ["INC-2026-0007"],
|
||
"topology": ["api-gateway", "order-service", "mysql-primary"]
|
||
},
|
||
"policy": {
|
||
"auto_execute_allowed": true,
|
||
"max_actions": 3,
|
||
"confidence_threshold": 0.7
|
||
}
|
||
}
|
||
```
|
||
|
||
**Response JSON**
|
||
|
||
```json
|
||
{
|
||
"request_id": "req-20260325-0001",
|
||
"task_id": "task-diag-00091",
|
||
"incident_id": "INC-2026-0001",
|
||
"status": "queued",
|
||
"queued_at": "2026-03-25T09:10:13Z"
|
||
}
|
||
```
|
||
|
||
#### B. 任务结果查询:`GET /api/v1/ai/tasks/{task_id}`
|
||
|
||
**Response JSON(running)**
|
||
|
||
```json
|
||
{
|
||
"task_id": "task-diag-00091",
|
||
"incident_id": "INC-2026-0001",
|
||
"status": "running",
|
||
"progress": 65,
|
||
"steps": [
|
||
{"name": "query_metrics", "status": "done"},
|
||
{"name": "query_logs", "status": "running"}
|
||
]
|
||
}
|
||
```
|
||
|
||
**Response JSON(succeeded)**
|
||
|
||
```json
|
||
{
|
||
"task_id": "task-diag-00091",
|
||
"incident_id": "INC-2026-0001",
|
||
"status": "succeeded",
|
||
"result": {
|
||
"summary": "数据库连接池耗尽导致 API 延迟升高",
|
||
"rca": {
|
||
"conclusion": "连接池参数与突发流量不匹配",
|
||
"confidence": 0.86,
|
||
"impact_scope": ["api-gateway", "order-service"],
|
||
"evidence": [
|
||
{"type": "metric", "ref": "promql://latency_p95"},
|
||
{"type": "log", "ref": "loki://timeout_errors"},
|
||
{"type": "sop", "ref": "kb://sop/db/pool-tuning"}
|
||
]
|
||
},
|
||
"actions": [
|
||
{
|
||
"action_id": "act-001",
|
||
"name": "临时扩容 order-service",
|
||
"risk": "low",
|
||
"mode": "auto",
|
||
"rollback": "scale down deployment/order-service"
|
||
},
|
||
{
|
||
"action_id": "act-002",
|
||
"name": "调整数据库连接池配置",
|
||
"risk": "medium",
|
||
"mode": "approval",
|
||
"rollback": "restore configmap db-pool-v2"
|
||
}
|
||
],
|
||
"model_usage": {
|
||
"model": "qwen2.5-32b",
|
||
"input_tokens": 4821,
|
||
"output_tokens": 691,
|
||
"cost_usd": 0.092
|
||
}
|
||
},
|
||
"finished_at": "2026-03-25T09:11:20Z"
|
||
}
|
||
```
|
||
|
||
#### C. 追问会话:`POST /api/v1/ai/chat`
|
||
|
||
**Request JSON**
|
||
|
||
```json
|
||
{
|
||
"incident_id": "INC-2026-0001",
|
||
"task_id": "task-diag-00091",
|
||
"question": "为什么判断是连接池问题而不是下游网络抖动?",
|
||
"conversation_id": "conv-9001",
|
||
"response_mode": "stream"
|
||
}
|
||
```
|
||
|
||
**Response JSON(non-stream)**
|
||
|
||
```json
|
||
{
|
||
"conversation_id": "conv-9001",
|
||
"answer": "过去15分钟连接超时错误与连接池使用率峰值高度相关,且网络丢包指标正常。",
|
||
"citations": [
|
||
{"type": "metric", "ref": "promql://db_pool_usage"},
|
||
{"type": "metric", "ref": "promql://packet_loss"}
|
||
]
|
||
}
|
||
```
|
||
|
||
#### D. 工具调用代理:`POST /api/v1/ai/tools/{tool_name}`
|
||
|
||
**Request JSON(以 `query_metrics` 为例)**
|
||
|
||
```json
|
||
{
|
||
"incident_id": "INC-2026-0001",
|
||
"task_id": "task-diag-00091",
|
||
"arguments": {
|
||
"query": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{service='order-service'}[5m])) by (le))",
|
||
"start": "2026-03-25T08:55:00Z",
|
||
"end": "2026-03-25T09:10:00Z",
|
||
"step": "30s"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Response JSON**
|
||
|
||
```json
|
||
{
|
||
"tool_name": "query_metrics",
|
||
"status": "ok",
|
||
"data": {
|
||
"series": 1,
|
||
"points": 30,
|
||
"summary": "p95 latency 从 220ms 升至 2.1s"
|
||
},
|
||
"duration_ms": 328
|
||
}
|
||
```
|
||
|
||
#### E. 枚举与必填字段约束
|
||
|
||
- `incident.status`:`new | triaged | diagnosing | remediating | resolved | closed`
|
||
- `incident.severity`:`p1 | p2 | p3 | p4`
|
||
- `actions.risk`:`low | medium | high`
|
||
- `actions.mode`:`auto | approval | suggest_only`
|
||
- `task.status`:`queued | running | succeeded | failed | timeout`
|
||
|
||
**必填字段(后端 -> AI)**
|
||
|
||
- `incident_id`、`status`、`severity`、`service`、`env`、`fingerprint`、`time_window`
|
||
|
||
**必填字段(AI -> 后端)**
|
||
|
||
- `task_id`、`incident_id`、`status`
|
||
- 成功时必须包含 `rca.conclusion`、`rca.confidence`、`rca.evidence[]`
|
||
- `confidence < 0.70` 时 `actions.mode` 只能为 `suggest_only | approval`
|
||
|
||
#### F. 错误码约定(联调最小集)
|
||
|
||
| code | 含义 | 处理建议 |
|
||
| --- | --- | --- |
|
||
| `AI_TIMEOUT` | AI 任务超时 | 进入人工接管,保留建议模式 |
|
||
| `TOOL_UNAVAILABLE` | 工具层不可用 | 降级检索,禁止自动执行 |
|
||
| `INVALID_STATE` | 状态机非法跳转 | 拒绝请求并记录审计 |
|
||
| `APPROVAL_REQUIRED` | 缺少审批 | 拒绝执行并提示审批人 |
|
||
| `SCHEMA_INVALID` | AI 返回结构不合法 | 触发重试/兜底模板 |
|
||
|
||
### 统一响应结构(建议)
|
||
|
||
```json
|
||
{
|
||
"incident_id": "INC-2026-0001",
|
||
"summary": "数据库连接池耗尽导致 API 延迟升高",
|
||
"rca": {
|
||
"conclusion": "连接池配置与突发流量不匹配",
|
||
"confidence": 0.86,
|
||
"impact_scope": ["api-gateway", "order-service"],
|
||
"evidence": [
|
||
{"type": "metric", "ref": "promql://..."},
|
||
{"type": "log", "ref": "loki://..."},
|
||
{"type": "sop", "ref": "kb://sop/db/pool-tuning"}
|
||
]
|
||
},
|
||
"actions": [
|
||
{"name": "临时扩容 API", "risk": "low", "mode": "auto"},
|
||
{"name": "调整连接池参数", "risk": "medium", "mode": "approval"}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 失败与降级策略(必须实现)
|
||
|
||
- Dify 超时:返回最近一次可用建议 + 人工接管提示。
|
||
- Tool 调用失败:标记证据缺失,降低置信度并阻断自动执行。
|
||
- 执行失败:自动回滚并创建高优 Incident 子任务。
|
||
- 向量检索异常:降级到关键词检索 + 近期案例兜底。
|
||
|
||
## 5.5 调度精度保障(SLO + 规则)
|
||
|
||
### 调度与响应精度机制
|
||
|
||
- 状态机强约束:非法状态跳转直接拒绝并记录审计。
|
||
- 证据门槛:无证据链 RCA 不允许进入自动执行。
|
||
- 置信度门槛:`confidence < 0.70` 时强制降级为建议模式。
|
||
- 风险门槛:`risk=high` 必须审批且双人复核。
|
||
- 执行前校验:变更窗口、白名单、目标资源健康度。
|
||
|
||
### 精度验收指标(建议)
|
||
|
||
- RCA Top1 准确率 >= 80%
|
||
- 自动动作误触发率 <= 1%
|
||
- 高风险动作审批覆盖率 = 100%
|
||
- 事件处理延迟 P95 <= 5 秒
|
||
|
||
## 5.6 AI 调用成本治理(FinOps)
|
||
|
||
### 成本控制策略
|
||
|
||
- 模型分级路由:小模型用于分类/摘要,中模型用于常规诊断,大模型仅复杂故障触发。
|
||
- Token 预算:按任务类型设置输入输出上限,超限自动裁剪上下文。
|
||
- 缓存复用:同 fingerprint 故障复用历史 RCA 与动作模板。
|
||
- 异步化:复盘类任务离线执行,避免占用实时预算。
|
||
- 本地优先:可本地推理任务不走外部高价 API。
|
||
|
||
### 成本指标(建议)
|
||
|
||
- `cost_per_incident`
|
||
- `cost_per_resolved_incident`
|
||
- `token_per_incident`
|
||
- `mttr_improvement_per_dollar`
|
||
|
||
## 5.7 测试与验收计划(故障注入)
|
||
|
||
### 场景清单(MVP 建议 12 个)
|
||
|
||
- API 延迟飙升
|
||
- 数据库连接池耗尽
|
||
- K8s Pod OOM
|
||
- 节点不可达
|
||
- 依赖服务超时
|
||
- 配置变更回归故障
|
||
|
||
### 测试分层
|
||
|
||
- 单元测试:状态机规则、风险策略、工具适配器
|
||
- 集成测试:平台 -> Dify -> 工具层 -> 执行网关全链路
|
||
- 压力测试:高并发告警风暴场景
|
||
- 演练测试:回滚、审批超时、Dify 超时降级
|
||
|
||
### 验收标准
|
||
|
||
- Month 3:10+ 场景联调通过,MTTR 改善 > 50%
|
||
- Month 6:低风险自愈率 > 60%,关键 KPI 达标
|
||
|
||
## 5.8 安全与合规细化
|
||
|
||
- 密钥管理:统一 KMS/Secret 管理,禁止硬编码
|
||
- 权限管理:RBAC 最小权限 + 操作双人复核
|
||
- 数据治理:敏感字段脱敏,审计日志保留 >= 180 天
|
||
- 网络安全:服务间 mTLS,关键接口 IP 白名单
|
||
|
||
## 5.9 发布与回滚 Runbook
|
||
|
||
### 发布策略
|
||
|
||
- 灰度发布:10% -> 30% -> 100%
|
||
- 观测窗口:每阶段观测 30-60 分钟
|
||
- 门禁条件:错误率、延迟、误触发率不劣化
|
||
|
||
### 回滚触发条件
|
||
|
||
- 自动动作失败率连续 5 分钟超阈值
|
||
- Dify 调用超时率超过阈值并影响响应 SLA
|
||
- 关键服务错误率超过基线阈值
|
||
|
||
### 回滚步骤
|
||
|
||
1. 切换到上一个稳定版本
|
||
2. 暂停自动执行,仅保留建议模式
|
||
3. 触发应急群通知并生成复盘任务
|
||
|
||
---
|
||
|
||
## 6. 非功能与治理要求
|
||
|
||
### 6.1 平台级 SLO
|
||
|
||
- 告警处理延迟 P95 < 5 秒
|
||
- 诊断建议生成时延 P95 < 60 秒
|
||
- 平台可用性 > 99.9%
|
||
- 审计日志完整率 100%
|
||
|
||
### 6.2 安全与合规
|
||
|
||
- 全链路 RBAC、最小权限原则
|
||
- 高风险动作强制审批与双人复核
|
||
- 敏感数据脱敏与传输加密
|
||
- 全量操作可追踪、可回放、可审计
|
||
|
||
### 6.3 可靠性设计
|
||
|
||
- 关键组件高可用(多副本 + 失败转移)
|
||
- 执行器幂等与超时控制
|
||
- 自愈操作默认可回滚
|
||
- 平台自身监控与告警闭环
|
||
|
||
---
|
||
|
||
## 7. 行业成功案例与可借鉴能力
|
||
|
||
本节聚焦可公开验证的产品能力与落地方法,给出“案例细节 + 可复制做法 + 本项目映射”。
|
||
|
||
### 7.1 PagerDuty:事件响应与值班协同的标杆实践
|
||
|
||
**产品定位**
|
||
|
||
- 核心是 Incident Response 平台,不替代监控系统,而是承接监控告警并驱动处置流程。
|
||
|
||
**能力拆解**
|
||
|
||
- On-call 与 Escalation Policy:告警按排班与升级链自动触达,避免“没人接警”。
|
||
- Event Intelligence:告警去重、聚合、抑制,降低重复告警噪声。
|
||
- Incident Timeline:自动记录事件时间线,沉淀复盘证据。
|
||
- 协同联动:和 IM、工单、电话短信等系统联动,缩短协作路径。
|
||
|
||
**典型处置链路(可直接借鉴)**
|
||
|
||
1. 监控触发告警并推送至事件平台。
|
||
2. 平台完成去重与聚合,生成 Incident。
|
||
3. 根据值班策略通知责任人;超时未响应自动升级。
|
||
4. 故障处理期间持续写入时间线与操作记录。
|
||
5. 事件关闭后自动进入复盘,产出改进项。
|
||
|
||
**对本项目的设计启示**
|
||
|
||
- 流转层应优先实现:事件状态机、升级规则、值班联动、时间线中心。
|
||
- 以“先把流程跑通,再叠加智能诊断”为原则,避免一开始过度依赖模型能力。
|
||
|
||
### 7.2 Datadog:统一可观测性驱动的关联诊断
|
||
|
||
**产品定位**
|
||
|
||
- 统一可观测性平台,强调 Metrics / Logs / Traces / Events 的联动分析。
|
||
|
||
**能力拆解**
|
||
|
||
- 跨数据源检索:同一故障上下文中同时查看指标、日志、链路。
|
||
- 服务拓扑视图:用依赖关系缩小故障定位范围。
|
||
- 异常检测与动态阈值:减少静态阈值带来的误报与漏报。
|
||
|
||
**典型处置链路(可直接借鉴)**
|
||
|
||
1. 告警触发后自动关联同时间窗口日志与 Trace。
|
||
2. 按服务拓扑定位“上游异常”和“下游受影响面”。
|
||
3. 生成诊断候选清单,输出最可能根因路径。
|
||
|
||
**对本项目的设计启示**
|
||
|
||
- 数据治理层必须建立统一标签标准(service/env/region/owner)。
|
||
- 大脑层工具链应支持多源联查,避免只依据单一指标给结论。
|
||
|
||
### 7.3 Dynatrace / New Relic:AIOps 根因分析能力建设
|
||
|
||
**产品定位**
|
||
|
||
- 强调“自动检测 + 智能诊断 + 影响分析”的连续闭环。
|
||
|
||
**能力拆解**
|
||
|
||
- 异常模式识别:识别偏离基线的行为并触发分析。
|
||
- 根因候选推理:基于依赖、时序和上下文给出候选原因。
|
||
- 影响域评估:输出受影响服务、租户或业务线范围。
|
||
|
||
**典型处置链路(可直接借鉴)**
|
||
|
||
1. 监控发现异常并触发自动诊断。
|
||
2. 系统聚合证据并排序根因候选。
|
||
3. 输出诊断结论、置信度与影响范围,支持人工确认。
|
||
|
||
**对本项目的设计启示**
|
||
|
||
- RCA 输出必须包含:结论、证据链、置信度、影响范围、建议动作。
|
||
- 建议在模型层增加“低置信度降级策略”(仅建议,不自动执行)。
|
||
|
||
### 7.4 Splunk SOAR / IBM SOAR:自动化与治理并重
|
||
|
||
**产品定位**
|
||
|
||
- 重点在 Playbook 编排、权限管控和审计闭环,适合高合规场景。
|
||
|
||
**能力拆解**
|
||
|
||
- 自动化编排:将多步骤处置动作标准化为可复用流程。
|
||
- 审批与权限:高风险动作执行前置审批,细粒度授权。
|
||
- 审计追踪:保留操作记录、执行结果和责任主体。
|
||
|
||
**典型处置链路(可直接借鉴)**
|
||
|
||
1. 命中自动化策略后生成执行计划。
|
||
2. 高风险动作进入审批流,低风险动作自动执行。
|
||
3. 执行完成后自动记录证据并归档审计。
|
||
|
||
**对本项目的设计启示**
|
||
|
||
- 执行层要内置策略闸门:白名单、审批、回滚点、双人复核。
|
||
- 任何自动操作都必须可追踪、可回滚、可审计。
|
||
|
||
### 7.5 开源组合实践:可控、可扩展、可私有化
|
||
|
||
**推荐基线组合**
|
||
|
||
- 监控:Prometheus + Alertmanager + Grafana
|
||
- 日志:OpenSearch/ELK
|
||
- 编排与执行:Argo Workflows / Ansible / K8s API
|
||
- 数据采集标准:OpenTelemetry
|
||
|
||
**实践价值**
|
||
|
||
- 降低厂商锁定风险,便于私有化与国产化替代。
|
||
- 组件化扩展灵活,适合分阶段建设。
|
||
- 与现有运维体系兼容度高,迁移成本可控。
|
||
|
||
**对本项目的设计启示**
|
||
|
||
- 坚持“开源底座 + 智能中枢”路径,智能层通过连接器与适配层解耦。
|
||
- 先做高价值连接器(Prometheus、K8s、工单、IM),再扩展其他生态。
|
||
|
||
### 7.6 本项目能力映射(Benchmark Mapping)
|
||
|
||
| 参考产品/方向 | 关键可借鉴能力 | 本项目落地动作 | 近期优先级 |
|
||
| --- | --- | --- | --- |
|
||
| PagerDuty | 值班升级、事件时间线、响应流程标准化 | 事件状态机 + 升级策略 + 时间线中心 | P0 |
|
||
| Datadog | 指标/日志/Trace 联动分析 | 统一标签标准 + 多源联查工具链 | P0 |
|
||
| Dynatrace/New Relic | 根因候选、影响范围、置信度输出 | RCA 证据链模板 + 置信度阈值 | P1 |
|
||
| Splunk SOAR/IBM SOAR | Playbook、审批治理、审计留痕 | 策略闸门 + 回滚机制 + 审计中心 | P0 |
|
||
| 开源生态组合 | 私有化可控、组件化扩展 | 连接器优先级建设 + 模块化部署 | P1 |
|
||
|
||
### 7.7 里程碑化落地建议(结合本项目 6 个月计划)
|
||
|
||
- Month 1-2:优先交付 PagerDuty 类能力(事件收敛、升级策略、时间线)。
|
||
- Month 2-4:补齐 Datadog 类能力(多源联查、统一标签、拓扑关联)。
|
||
- Month 4-5:引入 Dynatrace 类能力(RCA 证据链与置信度输出)。
|
||
- Month 5-6:落地 SOAR 类能力(审批、回滚、审计)并完成验收。
|
||
|
||
---
|
||
|
||
## 8. 分阶段实施路径(与产品化联动)
|
||
|
||
### Phase 1(0-3 个月):MVP 可用
|
||
|
||
- 打通感知-编排-诊断主链路(平台 + Dify Platform + Custom Gateway)
|
||
- 完成 10+ 典型场景故障注入测试
|
||
- 输出首版 KPI 看板和实施手册
|
||
|
||
### Phase 2(4-6 个月):生产就绪
|
||
|
||
- 完成执行层与安全闸门
|
||
- 实现低风险故障自动自愈
|
||
- 完成平台化运维流程(审计、审批、复盘)
|
||
|
||
### Phase 3(6-12 个月):规模复制
|
||
|
||
- 行业模板化交付
|
||
- 完善多租户与插件生态
|
||
- 按资源情况逐步扩展商业化能力
|
||
|
||
---
|
||
|
||
## 9. 主要风险与控制点
|
||
|
||
| 风险 | 影响 | 控制措施 |
|
||
| --- | --- | --- |
|
||
| LLM 幻觉或误判 | 错误决策 | 置信度阈值 + 人工审批 + 证据链输出 |
|
||
| 知识库质量不稳定 | 诊断命中率下降 | 知识治理流程 + 评分淘汰机制 |
|
||
| 自动化误操作 | 业务中断 | 白名单 + 回滚点 + 双人复核 |
|
||
| 集成复杂度高 | 项目延期 | 标准连接器 + 适配层抽象 |
|
||
|
||
---
|
||
|
||
## 10. 附录:参考案例追踪清单(建议)
|
||
|
||
为保证方案持续更新,建议在项目推进中维护如下案例追踪清单:
|
||
|
||
- PagerDuty:事件编排、值班升级、事件复盘能力更新
|
||
- Datadog:可观测性联动分析、AIOps 功能演进
|
||
- Dynatrace / New Relic:RCA 自动化与影响分析能力
|
||
- Splunk SOAR / IBM:自动化编排、安全审批与审计实践
|
||
- CNCF 生态:OpenTelemetry、Prometheus、Argo 等开源能力演进
|