Files
aiops/PROJECT_EVALUATION.md
T

12 KiB
Raw Blame History

AIOps 智能运维平台 — 全量项目评估

最后审计: 2026-06-25 | 审计范围: 全项目(后端/前端/Agent/部署) | 审计人: AI + Logan


一、项目规模总览

层 文件数 代码行数 语言/框架
后端 116 个 .go 34,485 Go 1.24 / Gin / GORM / MySQL 8 / Redis 7
前端 237 个 .tsx/.ts 58,648 React 19 / TypeScript / Vite / Tailwind / shadcn/ui
Agent 21 个 .go 2,969 Go 1.24 静态编译 (CGO_ENABLED=0)
合计 374 96,102 —

关键指标

指标 数量
后端 API 路由 411 条(GET 171 / POST 144 / DELETE 54 / PUT 41 / PATCH 1)
后端业务模块 48 个(handlers 目录)
数据库表 86 张 GORM 映射表
前端 API 方法 352 个(31 个模块)
前端路由 ~50 条(45 个 lazy 组件,零空壳)
前端组件 215 个
Agent 采集器 11 个(CPU/Memory/Swap/Disk/DiskIO/Network/Port/ProcessTop/FD/ContextSwitch/HealthProbe)
侧边栏菜单 9 个一级 / 42 个二级

二、功能模块评估

2.1 资产管理 ✅ 完善

功能 后端 前端 状态
服务器 CRUD + CSV 批量导入 ✅ ✅ ServerManager (609L) ✅
WebShell SSH 终端 ✅ webshell.go (325L) ✅ xterm.js WebSocket ✅
云账号管理(AWS/阿里/华为) ✅ cloud_sync.go (277L) ✅ CloudAccountManager ✅
域名/区域/平台管理 ✅ ✅ ✅
云账单 ✅ billing.go (307L) ✅ ✅
Agent 管理(安装/卸载/升级) ✅ agent.go(624L) + agent_install.go(514L) ✅ AgentWizard + HostMonitor ✅

2.2 Kubernetes 管理 ✅ 功能完备

功能 后端 前端 状态
多集群 CRUD + 同步 + metrics ✅ kubernetes.go (4204L, 134 函数) ✅ ClusterOverviewPage ✅
Deployment 三模式编辑器 ✅ GetYAML/UpdateYAML ✅ DeploymentWorkload (773L) + 5 Tab 编辑器 (~2700L) ✅
StatefulSet/DaemonSet 详情 ✅ ✅ WorkloadViewPage (480L) ✅
Pod 日志/终端/文件浏览 ✅ WebSocket channel.k8s.io ✅ PodLogsViewer/PodExecTerminal/PodFileBrowser ✅
Node 详情(资源分配率) ✅ GetNodeDetail ✅ NodeDetailPage (330L) ✅
事件聚合看板 ✅ GetEventsSummary ✅ EventsPage (480L, recharts) ✅
多集群对比 ✅ GetMultiClusterComparison ✅ ClusterComparePage (360L) ✅
Namespace 管理 CRUD ✅ GetNamespacesDetail ✅ NamespaceManagementPage (280L) ✅
kubectl 终端 ✅ PTY ✅ KubectlTerminal ✅
ConfigMap/Secret 编辑 ✅ UpdateResourceYAMLNS ✅ YamlViewer(CodeMirror 6) ✅
YAML 语法高亮编辑器 ✅ ✅ CodeMirror 6 ✅

2.3 应用发布 ✅ 完善

功能 后端 前端 状态
CI/CD 流水线(GitLab CI 风格) ✅ pipeline.go(580L) + pipeline_executor.go(665L) ✅ PipelineManager(961L) + PipelineEditor(602L) ✅
SSH 主机 + Kubernetes 双路径 ✅ ✅ 流水线横幅 ✅
发布配置/凭证/工具 ✅ credential.go(400L) ✅ CredentialManager(822L) ✅
发布权限 RBAC ✅ ✅ ✅

2.4 监控告警 ✅ 完善

功能 后端 前端 状态
主机监控(Agent 上报) ✅ agent.go + health_probe.go ✅ HostMonitor (1094L, 7 Tab) ✅
告警规则引擎 ✅ alert_engine.go (含日志告警 checkLogAlertRules + 自动恢复) ✅ AlertCenter (662L) ✅
告警通知(飞书/钉钉/企微/Webhook) ✅ alert_channels.go (483L) ✅ AlertContact 管理 ✅
日志告警引擎 ✅ AlertEngine type="log" 规则查询 Loki/ES + 触发/恢复 ✅ AlertRuleDialog 日志类型 + LogAlertFromQueryDialog 从查询创建 ✅ F6 done
Prometheus 数据源 + 代理 ✅ prometheus_datasource.go + proxy ✅ PrometheusDatasourceManager(829L) ✅
Zabbix 数据源 + 代理 ✅ zabbix_proxy.go (284L) ✅ ✅
告警静默规则 ✅ alert_silence.go + engine 集成 ✅ SilenceRuleTab ✅
监控大屏(自定义仪表盘) ✅ custom_dashboard.go CRUD ✅ GrafanaDashboard 自定义 Tab + GrafanaPanelContent PromQL 渲染 ✅ F4 done
链路追踪 ✅ trace_proxy.go Jaeger/Tempo 代理 ✅ TraceManager (587L) — traceApi 对接真实后端 + demo 数据兜底 ✅ F5 done
中间件监控 ✅ middleware_monitor.go 后端直连采集 Redis/MySQL ✅ MiddlewareMonitor 完整管理页面 (CRUD + 测试 + 概览) ✅ M15 done
主机监控大屏 ✅ serverApi 复用 ✅ HostMonitorDashboard (Grafana 风格大屏 + CPU/内存 Top5 排行 + 统计卡片) ✅ U13 done

2.5 自动化运维 ✅ 完善

功能 后端 前端 状态
定时任务(CronJob) ✅ automation_cron.go (411L) ✅ CronJobManager ✅
脚本库(Shell/Python) ✅ automation_script.go (356L) ✅ ScriptManager ✅
远程执行(Go-native SSH) ✅ remote_exec.go (309L) ✅ ✅
Ansible Playbook ✅ ansible.go (462L) ✅ AnsibleWorkflow(886L) ✅

2.6 AIOps 智能 ✅ 基础完善

功能 后端 前端 状态
AI 智能助手(6 种 LLM) ✅ llm_chat.go (349L, SSE 流式) ✅ AIOpsAssistant(694L) ✅
告警分析 ✅ ✅ ✅
容量预测 ✅ ✅ ✅

2.7 资源申请 ✅ 完善

功能 后端 前端 状态
云服务器申请审批 ✅ ✅ ✅
应用部署申请 ✅ ✅ ✅

2.8 系统管理 ✅ 完善

功能 后端 前端 状态
用户/角色权限 (RBAC) ✅ user.go + user_admin.go + ldap.go(319L) ✅ SystemManager ✅
LDAP 集成 ✅ ldap.go + ldap_users.go(397L) ✅ ✅
操作审计 ✅ audit.go (360L) + CSV 导出 ✅ ✅
终端审计(WebSSH 录制) ✅ ✅ ✅
凭证管理 ✅ credential.go(400L) ✅ ✅
系统设置 ✅ ✅ ✅

三、技术债评估

3.1 🔴 高优先级

问题 影响 范围 建议优先级
kubernetes.go 4204 行/134 函数 → 已拆分为 12 个域文件(最大 696 行) ✅ 已解决 后端 P0 done
api.ts 1324 行/352 方法 → 已拆分为 12 个域文件 (api/kubernetes.ts, deploy.ts, monitor.ts 等) ✅ 已解决 前端 P0 done
前端 1026 处 any 类型 类型安全缺失,重构风险高 前端全局 P0 done (any 1076→40, unused 25→6, console 93→1, tsc --noEmit=0)
K8s 双路由体系(集群域+Kuboard 域) → code 路由统一为主,ID 路由标记 deprecated 向后兼容 ✅ 已解决 后端 P1 done
25 个 ≥500 行巨型组件 拆分困难 前端 P1 → Q6-Q21 done: 最大组件 ResourceVisualEditor 882L→282L (-68%) + AgentCLI 814L→521L (-36%) + SystemSettingsTab 754L→173L (-77%) + NamespaceResourcePage 719L→300L (-58%) + ApprovalWorkflowPage 705L→167L (-76%) + PipelineRunDetail 678L→273L (-60%) + CloudServerImport 699L→404L (-42%,any[]→具体接口) + UnifiedQueryPanel 682L→529L (-22%) + ServerManager 652L→442L (-32%) + PipelineEditor 676L→406L (-40%) + RdpDialog 642L→442L (-31%) + DeploymentEditService 627L→394L (-37%) + TraceManager 605L→331L (-45%,修复 SpanTreeNode 内联定义反模式) + GrafanaDashboard 624L→78L (-87%,DRY 合并 Zabbix/Prometheus Tab + 移除文件级 eslint-disable + 类型安全升级) + TopologyView 596L→472L (-21%,提取 TopologyCanvas/NodeDetailDialog/EditNodeDialog,移除文件级 eslint-disable + any→ClusterInfo 具体接口) + DeploymentEditAdvanced 590L→289L (-51%,提取 types(parser+builder 纯函数) + UpdateStrategyCard/TolerationsCard/PodMiscCard/PodSecurityCard/HostSettingsCard 5 个 Card 组件),累计提取 73 个独立组件文件

3.2 🟡 中优先级

问题 数量 建议优先级
前端未使用变量/导入(ESLint no-unused-vars) 218 处 → 0 处 P1 ✅ done
前端 console.log/console.error 93 处 → 3 处 P1 ✅ done
前端 React Hooks 关键规则(exhaustive-deps/set-state-in-effect/purity/immutability 等 6 大规则) 82 处回归 → 0 处(U12 修复 i18n 全量改造引入的回归) P1 ✅ done (U12)
后端 _ = 忽略错误 13 处(3 处中风险) → controller/middleware 层 DB 写入零忽略(Q4+Q5 全量治理) P2 ✅ done
前端硬编码内网 IP(10.10.10.75 等) 6+ 处 P2
后端告警引擎分布式安全 ✅ Redis 分布式锁(SetNX + 60s TTL) 后端

3.3 🟢 低优先级

问题 数量
前端死代码(HostMonitorDashboard lazy 未挂载) → U13 done: 已挂载为 /host-dashboard 路由 + 监控菜单「主机大屏」 1 处 ✅ done
前端 set-state-in-effect(潜在无限循环) → U12 done: 0 处 7 处 ✅ done
前端 react-hooks/purity(render 调 Date.now) → U12 done: 0 处 6 处 ✅ done
后端 exec.Command + bash -c(命令注入面) 18 处(需审计用户输入路径)

3.4 Mock API / 未对接后端

前端 API 模块 方法数 状态 需要
dashboardApi(Grafana 大屏) 6 mock 返回空 → F4 done: 真实 CRUD + PromQL 查询 ✅ 已对接
traceApi(链路追踪) 3 mock 返回空 → F5 done: Jaeger/Tempo 代理 + demo 兜底 ✅ 已对接

四、架构评估

4.1 部署架构

方式 架构 容器数 状态
Docker Compose MySQL+Redis+Backend+Nginx 4 ✅
Kubernetes Embed 单容器 + MySQL/Redis StatefulSet 3+ ✅
独立二进制 Go embed 前端 1 ✅

4.2 镜像体积

镜像 大小 评估
aiops-backend 277 MB → 107 MB ✅ U4 镜像瘦身完成(git/docker-cli 改懒加载, 仅 amd64 agent, kubectl stripped)
aiops-frontend 69.8 MB ✅ Nginx Alpine
aiops-embed 54.9 MB ✅ 单文件

4.3 数据库架构

  • 86 张表,前缀规范统一:iam_ / asset_ / monitor_ / ops_ / deploy_ / ai_ / sys_ / kubernetes_
  • GORM AutoMigrate,UTF-8MB4
  • 已做索引审计(20 个重复索引已清理)

4.4 安全

项 状态
JWT 认证 ✅
RBAC 角色权限(后端) ✅
RBAC 前端按钮级控制 ✅ usePermission hook + <HasPermission> + Sidebar 过滤
SQL 注入防护 ✅ 全参数化
XSS 防护 ✅ React 默认
HTTPS ⚠️ 生产未强制
密码 Bcrypt ✅

五、综合评分

维度 评分 说明
功能完整性 95/100 8 大模块齐全,K8s 管理极为完善;链路追踪 F5 + 自定义仪表盘 F4 + 日志告警引擎 F6(日志查询→告警规则→触发/恢复闭环)全部对接真实后端
代码质量 82/100 后端规范好(0 panic, 1 TODO);前端 any 从 1026 降至 40 + tsc --noEmit 零错误,类型安全大幅提升
架构设计 86/100 前后端分离清晰,自研轻量 K8s 客户端;kubernetes.go/api.ts 已拆分,K8s 双路由已统一为 code 路由为主 (A1 done),WebSocket 统一管理 (A3 done)
部署运维 90/100 三种部署方式 + run.sh 统一入口;镜像优化 U4 done (282MB→107MB)
用户体验 91/100 骨架屏 + 页面过渡 + 5 套主题 + 懒加载 + 虚拟滚动 + 统一 DataTable + i18n 国际化(中/英双语切换,11 命名空间 1204 键,含 Kubernetes 模块)
综合 91/100 企业级运维平台,功能覆盖全面,所有 mock API 已清零(dashboardApi F4 + traceApi F5),日志告警引擎 F6 补全日志→告警闭环,P0-P3 + F4-F6 全部完成