docs: update dev-log - AgentAlerts 拆分
This commit is contained in:
1 parent
9276718d37
commit
7432431fc3
1 file changed
+29
@@ -1428,3 +1428,32 @@ cd ~/devops/aiops
|
||||
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
|
||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||
|
||||
|
||||
## 2026-06-17 自动推进(cron)— AgentAlerts 拆分
|
||||
|
||||
- **任务**: 拆分 AgentAlerts.tsx(542行->311行),远离700行硬上限
|
||||
- **背景**: dev-log 上次建议优先拆真实业务组件 AgentAlerts/AnsibleManager(继 ScriptManager + SystemUserTab + ReleaseManager + ServerManager 拆分后,AgentAlerts 是监控告警模块中 Agent 告警页面主组件,包含告警事件列表 + 告警规则 CRUD + 规则编辑弹窗)
|
||||
- **拆分方案**:
|
||||
- `frontend/src/components/agent/agentAlertHelper.tsx` — **新建**(54行):提取 METRIC_OPTIONS(监控指标5选项含图标)、OPERATOR_OPTIONS(比较运算符5选项)、SEVERITY_OPTIONS(严重程度3选项含徽章配色)、getMetricLabel()(指标中文标签)、asList()(兼容多种列表响应格式)、severityBadge()(严重程度徽章组件) 为共享纯函数/常量
|
||||
- `frontend/src/components/agent/AgentRuleDialog.tsx` — **新建**(219行):规则编辑/新建弹窗,自包含状态(ruleForm + saving),useEffect 在 open 时填充表单(编辑回填/新建重置),提交逻辑内移(createRule/updateRule + 字段校验),Props: open/onOpenChange/editingRule/onSuccess
|
||||
- `frontend/src/components/agent/AgentAlerts.tsx` — 主组件从 542 行降至 311 行(-231);移除 METRIC_OPTIONS/OPERATOR_OPTIONS/SEVERITY_OPTIONS 常量定义(迁移到 helper)、getMetricLabel/asList/severityBadge 函数定义(迁移到 helper)、规则编辑弹窗 JSX(115行,迁移到 AgentRuleDialog)、ruleForm/ruleSaving 状态 + handleSaveRule/resetRuleForm 函数(迁移到 AgentRuleDialog);保留状态管理(alerts/rules/loading/resolvedView/ruleOpen/editingRule) + loadData/handleResolve/handleDeleteRule/handleToggleRule CRUD handler + 两个 Tab(告警事件/告警规则)的内联渲染;规则弹窗替换为 `<AgentRuleDialog>` 组件
|
||||
- **结果**:
|
||||
- npx tsc --noEmit 零错误 ✅
|
||||
- npm run build 通过(3.15s) ✅
|
||||
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
|
||||
- API 验证:/agent/alerts 返回 4 条告警, /agent/rules 返回 0 条规则 ✅
|
||||
- 浏览器验证 /agent-alerts(监控告警-Agent告警菜单):
|
||||
- 告警事件 Tab:4 条告警卡片完整渲染,含严重程度徽章(警告/严重/提示) + 规则名称 + 描述 + 主机名 + 指标 + 当前值 + 时间 + 恢复按钮
|
||||
- 未恢复/已恢复切换按钮正常
|
||||
- 告警规则 Tab:空状态正确渲染(暂无告警规则 + 新建规则/创建第一条规则按钮)
|
||||
- "新建规则"按钮打开 AgentRuleDialog(空表单:规则名称+监控指标默认CPU+严重程度默认警告+比较运算符默认>大于+阈值默认90+持续时间默认60+启用开关开启+取消/创建按钮)
|
||||
- console 零 JS 错误 ✅
|
||||
- grep 确认 agentAlertHelper 被 AgentAlerts+AgentRuleDialog 引用,AgentRuleDialog 仅被 AgentAlerts 引用
|
||||
- git push 成功 (commit 9276718) ✅
|
||||
- **下一步建议**:
|
||||
- 前端仍有接近700行可拆分: TopologyView.tsx(576)、ExcelServerImport.tsx(549)、AIAlertAnalyzer.tsx(541)、AnsibleManager.tsx(535)
|
||||
- 优先拆 AnsibleManager(真实业务组件,自动化运维模块),TopologyView 拖拽逻辑复杂拆分需谨慎
|
||||
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
|
||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||
Reference in new issue
Block a user