attacker
|
5333f6f04a
|
feat(alert-center): 添加飞书Webhook通知渠道 + 告警引擎实时通知
- 后端: NotifyChannel 模型新增 feishu 类型, FeishuWebhookConfig
- 后端: TestNotifyChannel 真实发送飞书测试消息(文本格式)
- 后端: 告警引擎触发/恢复时自动发送飞书通知(sendFeishuAlert/sendFeishuRecovery)
- 后端: AlertEngine 新增 tcp_time_wait/tcp_close_wait/service_process 指标检测
- 后端: NetworkStatModel 新增 TCPCloseWait 字段
- 后端: QuickSetupRules 一键创建6条告警规则(CPU/内存/磁盘/TIME_WAIT/CLOSE_WAIT/进程)
- 后端: 注册 /alerts/quick-setup 路由
- 前端: AlertChannelDialog 新增飞书类型选项
- 前端: helpers 新增 getChannelIcon/getChannelTypeLabel 支持 feishu/dingtalk/wechat
|
2026-06-24 08:34:43 +00:00 |
|
attacker
|
7bc5169e8f
|
feat: 流水线队列引擎 — max_executors并发控制 + Jenkins风格构建队列+取消
|
2026-06-24 05:02:43 +00:00 |
|
attacker
|
be9db65a22
|
refactor: Deployment详情页优化 — 查看/编辑/YAML模式精简, 副本数移至Tab栏, 伸缩改HPA+CronHPA
|
2026-06-24 04:23:25 +00:00 |
|
attacker
|
d52fe8749d
|
fix: suppress /version /health /healthz probe noise in access logs
|
2026-06-24 04:09:59 +00:00 |
|
attacker
|
d65cc34354
|
refactor: trim K8s env vars to minimum (9 envs, only override code defaults)
|
2026-06-24 04:05:31 +00:00 |
|
attacker
|
bbf06204cc
|
refactor: rename deploy/k8s to deploy/kubernetes; add SetEnvKeyReplacer for env var support in K8s
|
2026-06-24 04:02:26 +00:00 |
|
attacker
|
d581441fa8
|
feat: Deployment详情页重构 — ACK风格Tab布局 + CI/CD Webhook + 信息面板
DeploymentView 完全重写:
- Tab布局: 容器组|访问方式(Service/Ingress)|事件|容器伸缩|历史版本
- 顶部信息面板: 状态/副本/节点/IP/创建时间 + Pod条件时间线
- 容器组Tab: 卡片式列表(日志/终端/文件按钮), 展开显示容器详情
- 访问方式Tab: 自动加载匹配的Service+Ingress(selector过滤)
- 事件Tab: 加载Deployment相关K8s Events
- 容器伸缩Tab: 内联伸缩UI(+/-按钮)
- 历史版本Tab: 回滚功能
DeploymentWorkload 精简:
- 删除下拉菜单(元数据/运行时/服务/应用路由/YAML预览/日志终端)
- 操作按钮改为直接按钮行: 编辑|调整镜像|重启|暂停/恢复|CI/CD|删除
- CI/CD改为Webhook模态(生成URL+curl示例, 自动填充Token)
- AIOpsAssistant UUID fallback支持HTTP环境
- Dockerfile chmod a+r 修复favicon.svg 403
|
2026-06-24 03:55:23 +00:00 |
|
attacker
|
722587ab84
|
feat: 前端全面优化 — 懒加载/骨架屏/错误边界/面包屑/主题增强/Glass登录页/动画系统
- 新增: ErrorBoundary, PageTransition, Breadcrumb, SkeletonCard (4组件)
- 重构: App.tsx (React.lazy懒加载所有页面), index.css (55+主题变量/动画/工具类)
- 优化: MainLayout (CSS变量布局+Footer), Header (搜索增强+快捷键), Sidebar (折叠Tooltip+子菜单动画)
- 优化: Dashboard骨架屏+级联动画, Stats/Charts/Recent主题感知颜色
- 优化: Login.tsx Glass毛玻璃效果+密码显隐图标+光球动画
- 图表Recharts主题化(CustomTooltip/chart-grid/chart-axis)
- 减少动画偏好支持(prefers-reduced-motion)
|
2026-06-24 02:06:07 +00:00 |
|
attacker
|
3d7932c087
|
feat(k8s): M13 多集群资源对比看板 — GetMultiClusterComparison handler + ClusterComparePage (柱状图/雷达图/饼图/详细对比表)
|
2026-06-24 05:03:47 +08:00 |
|
attacker
|
7192f58b72
|
feat(k8s): M12 事件聚合 + 告警联动 — EventsPage 聚合看板
- 后端: 新增 GetEventsSummary handler — 按 Reason/Namespace/Kind 三维度聚合 + 时间窗口过滤
- 后端: 注册 GET /:clusterCode/events/summary 路由
- 前端: EventsPage 完整重写(~480行) — 概览卡片 + 三维度柱状图(recharts) + 图表联动过滤 + 最新告警面板 + 可展开事件行 + 时间窗口选择器
- 前端: api.ts 新增 getEventsSummary 方法
- 验证: API 返回完整聚合数据(total=3, warning_count=613, BackOff top reason), SPA 200, TS零错误, Vite构建成功
|
2026-06-24 02:50:06 +08:00 |
|
attacker
|
e76061661b
|
fix: K8s终端bash不可用时抑制重复的'连接已断开'提示
|
2026-06-23 16:46:33 +00:00 |
|
attacker
|
d1c557bb6c
|
feat(k8s): M11 StatefulSet/DaemonSet 详情页 — WorkloadViewPage 重写 + YAML 路由冲突修复
后端:
- routes.go: 为 statefulsets/daemonsets 注册专门 YAML 子路由(Gin radix tree 冲突)
- kubernetes.go: GetResourceYAMLNS/UpdateResourceYAMLNS 添加 URL path fallback
前端:
- WorkloadViewPage.tsx 重写: 修复 kind 提取 bug(useLocation) + 更新策略/选择器/PVC模板/InitContainers
- NamespaceResourcePage.tsx: handleDetail 添加 STS/DS 点击导航
验证: DS YAML API 200 ✅ | DS Detail 200 ✅ | Dep YAML 200 ✅ | SPA路由 200 ✅ | TS零错误 ✅
|
2026-06-24 00:39:51 +08:00 |
|
attacker
|
87b7755094
|
feat(k8s): M10 Node 详情页 — PID/容器运行时/分配率
- 后端: GetNodeDetail handler — 获取单个节点完整信息
* 系统信息: container_runtime/architecture/kubelet/os/kernel
* 资源分配率: 遍历 Pod 计算 CPU/Memory/Pods requested vs allocatable
* metrics-server 数据注入 (cpu_usage_m/mem_usage_mi)
* 全量 conditions/taints/labels + 节点上的 Pod 列表
- 后端: K8s 客户端扩展
* NodeTaint/NodeCondition 扩展字段 (reason/message)
* NodeInfo 增加 architecture/operatingSystem
* GetNode(name) 单节点查询方法
* parseCpuToMilli()/parseMemToMi() 资源解析辅助函数
- 后端: 注册路由
* GET /kubernetes/:clusterCode/nodes/:name (Kuboard code)
* GET /kubernetes-clusters/:id/nodes/:name (ID)
- 前端: NodeDetailPage.tsx (~330行)
* 系统信息卡片 + 资源分配率卡片(进度条)
* 条件卡片 + 污点卡片 + 标签卡片 + Pod 列表
- 前端: 节点名称可点击跳转 (ClusterOverviewPage)
- 验证: API/SPA/TS/Vite 全部通过
|
2026-06-23 17:57:09 +08:00 |
|
attacker
|
28dfc519e1
|
feat(k8s): M8+M9 存储挂载/高级设置/服务路由 Tab — Deployment 可视化编辑器 5 Tab 全部完成
M8 存储挂载 Tab (DeploymentEditStorage.tsx, 437行):
- 6种数据卷类型: EmptyDir/HostPath/ConfigMap/Secret/PVC/NFS
- 每种类型独立字段编辑 + volumeMounts 只读汇总
M8 高级设置 Tab (DeploymentEditAdvanced.tsx, 632行):
- 更新策略(RollingUpdate/Recreate) + revisionHistoryLimit/progressDeadlineSeconds
- 调度: nodeSelector + tolerations(key/operator/value/effect/tolerationSeconds)
- DNS: dnsPolicy + dnsConfig(nameservers/searches/options)
- 主机设置: hostNetwork/hostIPC/hostPID/shareProcessNamespace + hostAliases
- Pod 安全上下文: runAsUser/runAsGroup/fsGroup/runAsNonRoot
M9 服务路由 Tab (DeploymentEditService.tsx):
- selector 双路径关联 Service(spec.selector.matchLabels || selector)
- Service/Ingress 创建/删除集成
EditModeContainer 5 Tab 全部 available:
basic / containers / storage / advanced / service
验证: go build OK + tsc --noEmit OK + vite build OK + SPA edit路由200 + YAML API有效
|
2026-06-23 13:40:13 +08:00 |
|
attacker
|
60934277ac
|
fix: kubectl本地打包避docker下载超时; Service关联用spec.selector而非metadata.labels; 数据源兼容SvcSummary/IngSummary格式
|
2026-06-23 02:37:33 +00:00 |
|
attacker
|
451f65f9c8
|
feat: 路由改名/kubectl预装/导出YAML精简/Service标签页优化/Alpine镜像源换清华
- 路由 /deploy/credentials → /deploy/configureTools
- kubectl 改为预装(Dockerfile) + 种子数据 preinstall
- 导出YAML精简: Service/Ingress/Deployment 全面清理运行时字段
- DeploymentEditService 只显示匹配 selector 的关联 Service
- Alpine 镜像源 mirrors.aliyun.com → mirrors.tuna.tsinghua.edu.cn
|
2026-06-23 02:22:52 +00:00 |
|
attacker
|
dd7cb6895e
|
feat: K8s集群导出改为导出所有命名空间资源,去掉命名空间选择
- 后端: 新增 ExportResourcesAllNS handler (GET /:clusterCode/export),遍历所有NS收集资源
- 前端: KubernetesClusters 导出弹窗去掉命名空间输入框,一键导出全部NS
- API: exportResources → exportAllResources,无需传 namespace 参数
|
2026-06-23 01:57:05 +00:00 |
|
attacker
|
a54b2d86b0
|
fix: ExecTerminal 默认 shell 改为 bash(从前端一致)
|
2026-06-23 01:44:21 +00:00 |
|
attacker
|
4bd9fa629b
|
fix: YAML查看器按钮文案 '清理并编辑' → '编辑',统一简洁命名
|
2026-06-23 01:23:27 +00:00 |
|
attacker
|
a8b4af4409
|
feat(k8s): M7 容器信息Tab — 完整容器编辑器(工作容器+初始化容器)
- 新增 DeploymentEditContainers.tsx (~700行): Kuboard 风格容器编辑器
- 工作容器 + 初始化容器分组管理(增/删/复制)
- 完整字段编辑: 镜像/拉取策略/命令/参数/工作目录
- 环境变量/端口(TCP/UDP/SCTP)/资源requests-limits
- 健康检查: liveness/readiness/startup三种探针
httpGet/tcpSocket/exec 三种检测方式可切换
- 生命周期回调: postStart/preStop (exec/httpGet/tcpSocket)
- 安全上下文: runAsUser/runAsGroup/privileged/capabilities等
- 卷挂载: name/mountPath/subPath/readOnly
- Pod级镜像拉取凭证(imagePullSecrets)编辑
- DeploymentWorkload.tsx: 容器Tab从旧DeploymentEdit替换为DeploymentEditContainers
- 纯前端工程, 后端GetYAML/UpdateYAML已完善
- 验证: tsc零错误 + vite build成功 + SPA路由200 + YAML PUT保存200
Closes M7
|
2026-06-22 23:29:30 +00:00 |
|
attacker
|
68a954c1c5
|
feat(k8s): M6 编辑器基础设施 + 基本信息 Tab + YAML编辑器
- DeploymentWorkload: 三模式切换(查看/编辑/YAML编辑)+ EditModeContainer Tab 导航系统
- DeploymentEditBasic: 新增基本信息 Tab — replicas/labels/annotations/selector 编辑
- YamlViewer: 升级为 CodeMirror 6(语法高亮+行号+折叠+括号匹配),新增 inline 内联模式
- DeploymentDetailPage: mode 类型扩展为 view|edit|yaml
- 路由 :mode 参数自动支持 yaml 值
- M7-M9 Tab 预留占位(容器信息/存储/高级/服务)
|
2026-06-23 05:15:42 +08:00 |
|
attacker
|
2e66908e20
|
feat(k8s): M5 Deployment 暂停更新 + CI/CD 集成
- 后端: PauseDeployment/ResumeDeployment 客户端方法 (PATCH spec.paused)
- 后端: ID路由 + Kuboard code路由 pause/resume handlers
- 后端: Deployment 列表 summary 增加 paused 字段
- 前端: 操作菜单增加「暂停更新/恢复更新」动态切换 + 暂停 Badge
- 前端: CI/CD 发布按钮跳转流水线页面 (namespace+deployment 上下文)
- 前端: api.ts 增加 pauseDeployment/resumeDeployment 方法
- 验证: 5项端到端测试全部通过 (Python urllib)
|
2026-06-23 03:06:13 +08:00 |
|
attacker
|
23f237288d
|
docs: Deployment可视化编辑器规划 M6-M9 + 项目评估更新
ROADMAP:
- 新增 P1 冲刺: M6-M9 Deployment 可视化编辑器(Kuboard 风格)
- M6: 编辑器基础设施 + 基本信息 Tab + YAML编辑器(Monaco)
- M7: 容器信息 Tab(工作容器+初始化容器,8类字段)
- M8: 存储挂载 + 高级设置 Tab
- M9: 服务/应用路由 Tab + 整体联调
- P2+ 模块重编号 M10-M13
PROJECT_EVALUATION:
- 新增 Deployment 编辑器现状评估表
- 编辑器 5 Tab 模块拆分(~2700行纯前端,零后端改动)
- 标注遗留组件待清理(DeploymentDetail.tsx 719行)
|
2026-06-23 02:37:50 +08:00 |
|
attacker
|
8637036995
|
feat(k8s): M4 ConfigMap/Secret 在线编辑
- YamlViewer 增加 autoEdit prop,打开即进入编辑模式
- NamespaceResourcePage ConfigMap/Secret 行增加编辑按钮(铅笔图标)
- 统一 cleanBeforeEdit=true,编辑前自动清理 status/managedFields/uid
- 端到端验证: GET YAML → PUT 更新 → curl 确认 K8s label 生效
- 更新 ROADMAP/PROJECT_EVALUATION
|
2026-06-23 02:33:31 +08:00 |
|
attacker
|
174382ff81
|
fix(k8s): PodExecTerminal error msg 字段对齐 + command 参数传递
- PodExecTerminal 传 shell 作为 command 到 WS URL
- 去掉发送 shell\r 的旧行为(K8s exec URL 已含 command)
- error 消息检查 msg.data 字段(与后端 WSMessage.Data 对齐)
- 已验证: WebSocket exec 端到端可用 (id 命令在 argocd pod 成功执行)
|
2026-06-23 02:27:43 +08:00 |
|
attacker
|
9ab7572b8e
|
feat(k8s): M3 Pod文件上传 + ExecInPod WebSocket协议重写
M3: Pod 文件上传
- 后端: POST .../pods/:pod/files/upload (multipart, base64分块exec写入)
- 前端: PodFileBrowser 增加上传按钮 + FormData API
- 路由: 新增 Kuboard (:clusterCode) + 旧 (:id) 两套路由
重大修复: ExecInPod 从 raw HTTP SPDY 改为 WebSocket channel.k8s.io
- 旧方案: HTTP POST + SPDY upgrade → 无法解析响应(协议头缺失 + 帧解析复杂)
- 新方案: gorilla/websocket Dialer + channel.k8s.io 子协议 → 和 ExecTerminal 一致
- 影响: 文件浏览/下载/上传全部恢复正常
修复: BusyBox ls 解析
- BusyBox 不支持 --time-style 参数,默认输出 Mon DD HH:MM 格式
- 解析器改为自动检测 GNU vs BusyBox 日期格式
|
2026-06-23 02:21:29 +08:00 |
|
attacker
|
69df073d42
|
chore: 隐藏.hermes目录、删除docker-compose.embed.yml、优化CLAUDE.md和README.md
- .gitignore 新增 .hermes/ 目录,git rm --cached 已追踪的 plan 文件
- 删除 docker-compose.embed.yml(embed 部署统一走 K8s 或独立二进制)
- Makefile 移除 docker-embed 目标
- CLAUDE.md 全面重写:三种部署方式详解、技术栈修正(Go1.24+MySQL/Redis)、架构完善、新增工具懒加载/凭证v2/远程执行/流水线/PTY终端等章节
- README.md 重写:三种部署快速开始、项目结构对齐实际目录、核心功能更新
|
2026-06-22 17:19:54 +00:00 |
|
attacker
|
4f1ffd1275
|
feat(k8s): M2 Pod Metrics 详情页接入 — ListPods 注入 metrics
后端:
- 新增 buildPodMetricsMap() 公共辅助函数,聚合多容器 CPU/Memory
- ListPods / listPodsWithNS / ListPodsAllNS 三个 handler 全部注入
- PodSummary 增加 cpu_usage_m / mem_usage_mi 字段
前端:
- KubernetesWorkloads Pod 表格增加 CPU/内存列
- NamespaceResourcePage Pod 表格增加 CPU/内存列
验证:
- 17 个 Pod 全部返回真实 metrics (argocd/demo-jar)
- curl /kubernetes-clusters/1/pods → cpu_usage_m='2m' mem_usage_mi='61Mi'
文档:
- ROADMAP M1→done, M2→done, 验收标准全部勾选
- TDD_PLAN M2 通过标准补充
- PROJECT_EVALUATION P0 缺失项移除
|
2026-06-23 00:54:54 +08:00 |
|
attacker
|
8c272a6fa6
|
perf: BuildKit cache mount 加速 Docker 构建
优化:
- Dockerfile 加 # syntax=docker/dockerfile:1 启用 BuildKit frontend
- go mod download / go build 加 --mount=type=cache (GOMODCACHE + GOCACHE)
- apk add 加 --mount=type=cache=/var/cache/apk
- alpine:latest → alpine:3.20 固定版本(避免 :latest 变动导致全量 cache miss)
- run.sh 加 DOCKER_BUILDKIT=1 + COMPOSE_DOCKER_CLI_BUILD=1
效果:
- 首次构建不变(需填充缓存)
- 第二次起: go build 增量编译(仅重编译改动包),apk 从缓存恢复
- 预估: 13分钟 → 2分钟
|
2026-06-21 21:55:03 +08:00 |
|
attacker
|
b3d2011243
|
feat(k8s): M1 SyncCluster 增加 metrics 采集
后端:
- SyncCluster 中调 GetNodeMetrics() 获取 metrics-server 数据
- 节点 INSERT 增加 cpu_usage/memory_usage 百分比字段
- 新增 parseCpuNanoToMilli / parseMemKiToMi 辅助函数
- 采集 Pod metrics(为 M2 准备)
前端:
- KubernetesClusterDetail 删除硬编码 resourceData mock
- 改为从节点 metrics 实时计算集群 CPU/内存使用率
- 图表 Y 轴固定 0-100 域,底部显示百分比数值
新增文档:
- ROADMAP.md / TDD_PLAN.md / PROJECT_EVALUATION.md
|
2026-06-21 21:45:42 +08:00 |
|
attacker
|
3b112ee813
|
docs: 添加项目评估、开发路线图、TDD开发计划三份核心文档
- PROJECT_EVALUATION.md: 综合评分72/100,15模块全量审计,工程质量(零测试)为最大风险
- ROADMAP.md: v0.3.0质量加固(当前)→v0.4.0企业级→v1.0.0智能化,含技术债务清单
- TDD_PLAN.md: 后端3阶段测试计划(覆盖率0%→50%),含K8s/Auth/Pipeline具体测试函数
|
2026-06-21 21:20:04 +08:00 |
|
attacker
|
9dbb7e9fc4
|
feat: K8s 集群同步功能 + 表单简化
- 新增手动同步按钮(卡片下拉菜单「同步」)
- 新建集群后自动触发同步(延迟500ms等列表刷新)
- 同步后刷新集群列表,节点/Pod/Deployment 数据写入 DB
- 集群表单:名称即code,正则校验英文/数字/连字符
|
2026-06-21 10:53:30 +00:00 |
|
attacker
|
e5276161ea
|
fix: 集群表单简化 + CPU/内存显示优化
- 移除独立 code 字段,名称即 code(正则校验英文/数字/连字符)
- 名称输入实时校验 + 红色边框提示,首尾不允许连字符
- CPU/内存使用率:有数据时正常显示,无 metrics 时显示「已接入 N 节点 · N Pod · 资源使用率待采集」
|
2026-06-21 10:47:23 +00:00 |
|
attacker
|
ce438c9f05
|
fix: K8s 集群添加缺少 code 必填字段
- KubernetesClusterDialog: 新增 code 表单字段
- 名称变更自动生成 code(小写+连字符)
- handleSubmit 增加 code 校验 + toast 提示
- payload 增加 code 字段(后端 binding:required)
|
2026-06-21 09:50:07 +00:00 |
|
attacker
|
f24fe43ac0
|
fix: 二进制新增 --redis-driver flag
CGO_ENABLED=0 编译的二进制默认用 redka(需CGO)会静默失败。
新增 --redis-driver redis 让二进制部署能用外部 Redis。
验证: 缓存已就绪 driver:redis ✅
|
2026-06-21 17:07:31 +08:00 |
|
attacker
|
2a0521340f
|
feat: 三种部署方式全部验证通过
方案1: docker-compose 双容器(原有,不变)
方案2: 二进制部署(go:embed 前端嵌入)
- 修复 SPA fallback(c.FileFromFS 301 → c.Data 直接返回)
- 二进制 22MB,内存 21.5MB
- 支持全部 CLI 参数(--db-host --redis-host --port 等)
方案3: K8s 部署(hostNetwork + 外部 MySQL/Redis)
- devops 声明空间
- embed 单容器 Deployment + NodePort Service
- 健康检查改为 /version(/health 尚未实现)
- hostNetwork 解决 K8s pod 网络到外部 MySQL 的连通性
新增: Dockerfile.embed, docker-compose.embed.yml, deploy/binary/
|
2026-06-21 15:03:17 +08:00 |
|
attacker
|
24f955832e
|
feat: 发布权限 RBAC + PipelineEditor 修复 + 菜单优化
- 新增 DeployRBAC 页面: Jenkins-style Item Role 权限管理
- 正则匹配流水线 code,实时命中预览
- 内置用户分配面板,无需跳转系统管理
- 支持创建/编辑/删除/启用禁用 Item Role
- 修复 PipelineEditor 成员管理 http 双解包 bug
- 修复 PipelineManager 前端 code 路由迁移(delete/trigger/stop/loadRuns)
- 新增批量删除流水线运行记录 API
- Sidebar: 应用发布下新增「发布权限」, 仓库认证→发布配置, 移除用户组
- 恢复系统管理菜单(不受发布权限改动影响)
- 后端 ItemRole CRUD handler + 正则匹配中间件已就绪
|
2026-06-21 05:26:01 +00:00 |
|
attacker
|
0fea0ccc20
|
refactor: Ansible template list — cards to table with batch delete, edit dialog, new template
- AnsibleManager: card grid → table list with checkbox/批量删除/edit/clone/delete
- AnsibleWorkflow: template step cards → table, add 新建模板 button
- Edit: window.prompt → AnsibleFormDialog (name/YAML/category/tags)
- Delete: window.confirm → _confirm dialog
- Batch delete: window.confirm → _confirm dialog
- Clone: card hover → table row button
|
2026-06-19 15:28:52 +00:00 |
|
attacker
|
732974d152
|
refactor: unify kubernetes_ table prefix, merge CI/CD models, LLM session support
- Rename container_clusters → kubernetes_clusters, container_topology_layouts → kubernetes_topology_layouts
- LLM: add session_id to chat history for multi-turn conversation support
- CI/CD: add pipeline_id, deploy_type, artifact_url, k8s_cluster_id to AppRelease
- Cleanup: remove deprecated playbook handler, simplify automation models
- Database: optimize auto-migrate model list
- Frontend: AIOps assistant improvements, api.ts updates
|
2026-06-19 15:01:54 +00:00 |
|
attacker
|
9365c1e9db
|
fix: 移除脚本库冗余统计框 & 修复 CronJob 表名 (cron_jobs→ops_cron_jobs) 导致创建500
|
2026-06-19 13:59:47 +00:00 |
|
attacker
|
7be277658a
|
feat: Ansible 模板克隆 (后端 ClonePlaybook API + 前端卡片悬浮克隆按钮 + 模板管理入口)
|
2026-06-19 13:52:37 +00:00 |
|
attacker
|
f05cf71121
|
feat: Ansible 完整工作流页面(模板→主机→预览→执行→监控)
**新组件 AnsibleWorkflow.tsx(~670行):**
- Step 1: 模板选择 — 卡片网格,按分类/标签搜索过滤
- Step 2: 主机匹配 — 正则/前缀/模糊搜索,checkable 表格,全选
- Step 3: 确认执行 — Playbook 摘要 + 主机列表 + YAML 预览
- Step 4: 执行监控 — 状态指示器 + 终端输出 + 耗时统计
- 执行记录 Tab — 历史列表 + 输出展开
**路由调整:**
- /ansible → AnsibleWorkflow(主工作流)
- /ansible/manage → AnsibleManager(模板 CRUD)
**类型补全:**
- ExecutionRecord 增加 triggered_by 字段
|
2026-06-19 13:41:04 +00:00 |
|
attacker
|
c9b6647831
|
feat: Ansible 15个运维模板 + 主机匹配 + 远程执行
**种子模板(15个):**
- 系统信息收集、安全更新、磁盘清理、服务巡检
- 用户SSH管理、Nginx配置、SSL证书检查、配置备份
- 进程诊断、Docker清理、防火墙、时间同步
- 日志轮转、内核调优、网络诊断
- 分类覆盖:maintenance/security/configuration/backup/monitoring
**主机匹配 API:**
- GET /api/v1/ansible/match-hosts?pattern=&match_type=regex|prefix|contains
- 支持正则/前缀/模糊匹配 hostname, IP, tags
- 复杂正则回退到 Go 过滤
- 分页支持
**远程执行增强:**
- 指定 target_hosts 时自动查询 SSH 信息生成临时 inventory
- 未指定时回退到 --connection=local
- 自动禁用 StrictHostKeyChecking
|
2026-06-19 13:31:55 +00:00 |
|
attacker
|
9af0685e90
|
fix: 修复架构分析报告指出的P0问题
**AI 告警分析(P0):**
- 替换 setTimeout 伪AI为真实 LLM 调用 (aiApi.chat)
- LLM 不可用时回退到规则模板(generateAIAnalysis)
- 移除 Math.random() 随机置信度/相似案例
- 分析结果从 LLM JSON 响应解析
**SSH HostKey 验证(P0):**
- webshell.go: InsecureIgnoreHostKey → TOFU 模式
- agent_install.go: 同步修复
- 首次连接记录 SHA256 fingerprint 到日志
- 后续连接校验 HostKey 一致性
**Ansible 执行引擎(P0):**
- ExecutePlaybook 从模拟改为真实 ansible-playbook 调用
- 支持 extra-vars 参数传递
- 5分钟超时保护
- ansible-playbook 未安装时返回明确错误
|
2026-06-19 11:51:03 +00:00 |
|
attacker
|
a3cd0d3910
|
feat: PTY kubectl终端 + 侧边栏对齐修复 + 构建缓存清理
**kubectl WebShell 修复:**
- 引入 github.com/creack/pty 库实现真正的伪终端
- 替换 bash --noediting + TERM=dumb 方案为 PTY-backed bash
- 支持 xterm-256color、窗口自适应、readline 交互
- 修复键盘输入无响应问题
**侧边栏优化:**
- 独立菜单项高度从 py-1.5 改为 h-8,与父菜单对齐
- 独立菜单图标从 h-3 w-3 改为 h-3.5 w-3.5,统一 14px
**构建优化:**
- run.sh docker up 增加 docker image prune -f 清理悬空镜像
- 每次部署自动清理 builder cache + dangling images
**认证修复(历史):**
- Token 存储:Zustand + localStorage 双写,http.ts 双源 fallback
- YamlViewer/DeploymentDetail token 来源统一为 Zustand store
|
2026-06-19 11:22:45 +00:00 |
|
attacker
|
cac1414917
|
refactor: 全局重命名 k8s → kubernetes (前后端+路由+表名+文件)
后端:
- pkg/k8sclient → pkg/kubernetesclient
- models/k8s.go → models/kubernetes.go
- handlers/k8s.go → handlers/kubernetes.go
- K8sCluster/K8sNode/.. → KubernetesCluster/KubernetesNode/..
- K8sHandler → KubernetesHandler
- 路由: /k8s-clusters → /kubernetes-clusters
- 路由: /k8s/:code/namespace/:ns/... → /kubernetes/:code/namespace/:ns/... (Kuboard风格)
- 表前缀: container_k8s_ → container_kubernetes_
前端:
- components/k8s/ → components/kubernetes/
- K8sClusters → KubernetesClusters
- K8sWorkloads → KubernetesWorkloads
- K8sNodes → KubernetesNodes
- k8sApi → kubernetesApi
- 路由前缀: /k8s/ → /kubernetes/
测试验证:
✅ /kubernetes/k8s-cluster-liren/namespace/kube-system/deployments → 3 items
✅ /kubernetes/k8s-cluster-liren/namespace/kube-system/pods → 7 items
✅ /kubernetes/k8s-cluster-liren/namespace/kube-system/services → 4 items
✅ /kubernetes/k8s-cluster-liren/namespace/kube-system/configmaps → 6 items
✅ /kubernetes/k8s-cluster-liren/namespace/kube-system/secrets → 1 item
✅ /kubernetes/k8s-cluster-liren/namespaces → 4 items
|
2026-06-19 08:10:12 +00:00 |
|
attacker
|
f7b667b878
|
feat(k8s-ui): HPA 创建按钮醒目化 + K8sWorkloads 命名空间切换
DeploymentDetail:
- HPA 未配置时,状态卡片内直接显示「创建 HPA」按钮
- 无需切换到 HPA Tab 即可一键创建
K8sWorkloads:
- 新增命名空间下拉选择器(自动加载集群全部 ns)
- 切换集群时自动重置命名空间为「全部」
- Deployment/Pod 列表按命名空间过滤
- 统计卡片始终显示全量数据(不受 ns 过滤影响)
|
2026-06-19 07:52:46 +00:00 |
|
attacker
|
77045622fc
|
feat(k8s): 实时日志流 + WebSocket exec 交互终端 + 前端流式日志查看器
后端:
- GetPodLogsStream: 新增 K8s follow=true 流式日志读取
- GetPodLogs handler: 支持 stream=true → chunked transfer 实时推流
- ExecTerminal: WebSocket → K8s SPDY exec 双向代理 (交互式 bash)
- 路由: GET /ws/k8s-exec/:id/namespaces/:ns/pods/:pod (WebSocket)
前端 DeploymentDetail:
- 新增「实时流」按钮: fetch ReadableStream + TextDecoder 逐块渲染
- 日志内容自动滚动追加
CD/CI 镜像更新:
- POST /update-image 已可用 (前端表单+后端 API 均完成)
|
2026-06-19 07:49:32 +00:00 |
|
attacker
|
1a913549fc
|
feat(k8s-ui): 重写 K8s 前端 — Deployment 详情页/HPA/CronJob/操作按钮
api.ts 改造:
- 修复 scaleDeployment/restartDeployment/deletePod 死桩 → 真实后端 API
- 新增: getPodLogs/execPod/updateDeploymentImage (CI webhook)
- 新增: getHPAs/createHPA/deleteHPA (HPA 管理)
- 新增: getCronJobs/createCronJob/suspendCronJob/triggerCronJob/deleteCronJob
- 新增: getNamespaces
DeploymentDetail 新组件:
- 副本状态卡片 (Ready/Total/Available)
- 副本加减按钮 (scale control)
- 滚动重启按钮
- 镜像更新表单 (CI webhook inline)
- Pod 列表 (按 deployment 名前缀过滤)
- Pod 日志查看器 (tail/container 参数)
- HPA 管理选项卡 (列表+删除)
- 创建 HPA 弹窗 (CPU/内存指标配置)
K8sWorkloads 增强:
- Deployment 表添加「操作」列(副本加减 + 查看详情)
- 点击 Deployment 行 → 跳转 DeploymentDetail 详情页
- handleQuickScale 快速扩缩容
新增 useToast hook (轻量级 toast 通知)
|
2026-06-19 07:36:13 +00:00 |
|
attacker
|
33e58ce25a
|
feat(k8s): 完整 K8s 管理能力 — 日志/exec/扩缩容/HPA/CronJob/CI webhook
新增功能:
- Pod 日志查看 (GET logs, 支持 tail/container 参数)
- Pod exec 命令执行 (文件浏览 ls/cat/stat)
- Deployment 副本数加减 (scale PATCH)
- Deployment 滚动重启 (restart annotation)
- Deployment CI webhook (update-image, 滚动更新镜像)
- HPA 管理: 列表/创建(CPU+内存指标)/删除
- CronJob 管理: 列表/创建/暂停恢复/手动触发/删除
- Namespace 列表
K8s Client 扩展 (纯标准库, 零外部依赖):
- 新增 post/patch/delete HTTP 方法
- GetPodLogs/ScaleDeployment/UpdateDeploymentImage/RestartDeployment
- ExecInPod/ListHPAs/CreateHPA/DeleteHPA
- ListCronJobs/CreateCronJob/SuspendCronJob/DeleteCronJob/TriggerCronJob
- ListNamespaces
已知限制: Exec SPDY 交互终端需引入 remotecommand 包
|
2026-06-19 06:45:00 +00:00 |
|
attacker
|
d3c3fb546d
|
optimize: docker up 自动清理历史 build cache,新增 docker clean 子命令
|
2026-06-19 06:36:00 +00:00 |
|
attacker
|
b25ad8705f
|
feat: K8s 集群实时代理 — 直接调用 K8s API 不存储 MySQL
- 新增 pkg/k8sclient 轻量级 K8s REST 客户端(解析 kubeconfig TLS 证书)
- ListNodes/Pods/Deployments/Services/Ingresses 改为实时代理 K8s API
- 集群同步端点 POST /:id/sync(拉取后仍存 MySQL 用于离线缓存储备)
- 前端 k8sApi 新增 syncCluster 方法
- 修复 SNMP MaxRepetitions uint8→uint32 类型错误
- 修复 ServicePort.TargetPort 兼容 int/string 双类型
- 创建 k8s_nodes/pods/deployments/services/ingresses 五张表
|
2026-06-19 06:32:18 +00:00 |
|
attacker
|
a1d4e2f18a
|
fix: auto-register OnConflict 移除 agent_version(防旧Agent空字段覆盖)
|
2026-06-19 02:18:12 +00:00 |
|
attacker
|
534fbdbfaf
|
fix: 切换实例按钮无效 & 磁盘分区内容溢出
- Select 下拉切换主机时同步更新 latest/serverInfo(添加 selectedHost 依赖)
- 磁盘分区 used_gb/usage_percent 格式化 .toFixed(1),容器加宽 + whitespace-nowrap 防溢出
|
2026-06-19 02:02:04 +00:00 |
|
attacker
|
4dd3e3238d
|
fix: agent_version 为空 & 恢复批量卸载
- 后端上报时若 agent_version 为空则不覆盖已有版本(防止旧Agent清空版本号)
- 安装/升级后写入版本号 v0.1.0(而非 installed/latest)
- DB 存量 online 主机 agent_version 补填 v0.1.0
- 前端恢复批量卸载 Agent 按钮
|
2026-06-19 01:51:16 +00:00 |
|
attacker
|
502674d73a
|
feat: 合并批量安装/升级为统一弹窗 — 类阿里云风格
- 批量安装/升级合并为一个「批量部署」按钮,弹窗内切换安装/升级模式
- 弹窗展示选中主机列表、当前版本、操作目标
- 增加专业警告文案(AIOps语境,区分安装/升级注意事项)
- 「我已知悉」勾选确认后才可提交
- Agent版本列:提交后显示loading转圈「部署中」状态
- 移除批量卸载按钮
|
2026-06-19 01:44:03 +00:00 |
|
attacker
|
0d61be1413
|
fix: API类型兼容 default_port + importInstances opts 参数
|
2026-06-19 01:32:43 +00:00 |
|
attacker
|
11e8c24f37
|
feat: CSV/云平台导入添加SSH端口(默认22) + 凭证关联下拉
- CSV模板新增port列, 连接方式改为SSH端口输入(默认22)
- 云平台导入新增SSH端口配置 + 凭证下拉选择
- 移除冗余的连接方式(密码/密钥)选择 → 凭证下拉统一管理
- ExcelServerImport: template含port列, resetState包含新字段
|
2026-06-19 01:31:46 +00:00 |
|
attacker
|
cbf4334f7f
|
fix: Agent二进制路径 /api/agent/bin 避免路由冲突
|
2026-06-19 01:28:52 +00:00 |
|
attacker
|
346042a29c
|
fix: ServerForm 缺少 ssh_key/credential_id 字段, selIds.has→includes
|
2026-06-19 01:27:31 +00:00 |
|
attacker
|
29b3cd49a0
|
fix: 修复 r.Static 变量名和缩进
|
2026-06-19 01:26:44 +00:00 |
|
attacker
|
ed08ea255e
|
feat: Agent批量升级 + 版本号注入 + 服务器凭证下拉关联
- Dockerfile: ARG VERSION/BUILD_TIME 通过 ldflags 注入 agent+backend 二进制
- run.sh: 自动从 git tag 获取版本号
- docker-compose: build args 传递 VERSION/BUILD_TIME
- backend: BatchUpgradeAgent SSH下载新二进制+重启, /agent/bin 静态文件服务
- frontend: 监控大屏添加批量升级按钮 (闪电图标)
- frontend: 服务器编辑/添加表单改为凭证下拉选择器
- frontend: ServerForm 加载 /credentials 列表, 选择后自动填充用户名/认证方式
|
2026-06-19 01:24:47 +00:00 |
|
attacker
|
228b6b52f9
|
feat: HostMonitor Brush图表缩放 + avg/max/min下拉选择器
- 添加 BucketPoint 结构 (avg/max/min/count)
- 时间范围切换自动调整聚合窗口 (1h→60s, 6h→5min, 12h→10min...)
- 每张指标卡片支持平均值/最大值/最小值切换
- Recharts Brush 组件实现鼠标拖选时间范围缩放
- 参考线显示整体均值
- 图表高度增大到 48 适配 Brush 条
- 磁盘分区列表兼容 agent 上报的原始字段名
|
2026-06-19 01:15:42 +00:00 |
|
attacker
|
feb8530999
|
fix: Backend SystemStat 添加 Uptime 字段,JSON tag 对齐
|
2026-06-19 01:10:46 +00:00 |
|
attacker
|
5949ec5d0c
|
feat: Agent采集uptime, 后端持久化kernel/uptime/diskIO, 前端磁盘BPS+IOPS展示
- Agent: system.go 添加 readUptime(), SystemStat 携带 Uptime
- Backend: Server 模型新增 Kernel 字段, ReceiveReport 持久化 kernel+uptime
- Backend: /agent/latest 返回 kernel/uptime/port_info/disk_io_info/disk_total
- Frontend: 磁盘监控改为 BPS+IOPS (4张卡片), 系统信息修复内核/运行时长/监听端口/磁盘容量
- 图表单位从 MB/s 改为 KB/s, 添加 formatBPS 工具函数
|
2026-06-19 01:10:00 +00:00 |
|
attacker
|
31c2e338a3
|
refactor: 后端二进制重命名 ezops → aiops
|
2026-06-19 00:45:21 +00:00 |
|
attacker
|
46e61216f6
|
feat: 兼容 docker compose / docker-compose, 移除 compose version 警告
|
2026-06-19 00:41:35 +00:00 |
|
attacker
|
4e3f8cb306
|
docs: update README, API reference, dev-log, project structure with Agent monitoring + quick-alarm + latest fixes
- README.md: React 19, default pwd 123456, Docker Compose deploy, correct module list
- api-reference.md: add Agent monitoring section (report/latest/rules/quick-setup/alerts/tasks/kline)
- dev-log.md: new entry documenting hostname/IP fix, system collector, offline detection, quick alarm
- project-structure.md: add agent/ directory, dev-log.md link, React 19
|
2026-06-18 16:11:13 +00:00 |
|
attacker
|
c51d0b8b8b
|
feat: Zabbix 数据源管理 — 完整 CRUD + 双 Tab 数据源页面
后端:
- models/zabbix_datasource.go: Zabbix 数据源 model (15字段, 参照 Grafana)
- handlers/zabbix_datasource.go: CRUD + 测试连接 (调用 Zabbix API Auth)
- routes.go: /zabbix-datasources 路由组
- database.go: AutoMigrate
前端:
- api.ts: zabbixDatasourceApi
- ZabbixDatasourceManager.tsx: 表单 (URL/用户名/密码/Trends设置/DB直连)
- DatasourcePage.tsx: Prometheus + Zabbix 双 Tab 包装
- App.tsx: /datasources 路由更新
|
2026-06-18 14:14:40 +00:00 |
|
attacker
|
d2201fc8c0
|
feat: 监控大屏 Grafana 风格增强 — 6卡统计 + bargauge 资源条状图 (参照 k8s/node/jvm dashboard)
- 统计卡片: 3→6 (主机总数/在线/离线/平均CPU/平均内存) 带阈值颜色
- 资源条状图: Top 5 CPU + 内存排行, 渐变色进度条 (绿<60%<黄<85%<红)
- 参照: Grafana k8s-dashboard bargauge / node-dashboard 表格 / jvm Quick Facts
|
2026-06-18 14:04:26 +00:00 |
|
attacker
|
2596bbc789
|
feat: Prometheus数据源管理 — 参考Grafana界面CRUD
- 后端: PrometheusDataSource model (22字段,含Basic Auth/TLS/Headers/Alerting)
- 后端: 8 API (CRUD + 设默认 + 连接测试 + 审计)
- 前端: 数据源管理页 — 表格列表 + Grafana风格配置Dialog
- 前端: 侧边栏「监控中心→数据源」菜单项
- 功能: Save & test 连接测试(含Basic Auth + Skip TLS)
Author: Logan.Li
|
2026-06-18 14:03:00 +00:00 |
|
attacker
|
1726ad65ac
|
snapshot: 数据源管理+大屏增强前快照
|
2026-06-18 14:01:22 +00:00 |
|
attacker
|
2bf3e7c308
|
feat: 监控大屏 /grafana→/dashboards + Agent主机Top10默认面板
- 路由: /grafana → /dashboards (Sidebar + App.tsx)
- GrafanaDashboard 新增默认面板: Agent 主机监控 Top 10
- CPU/Memory/Disk 使用率三列排行
- 进度条颜色: >85%红 >60%黄 <60%绿
- 🥇🥈🥉 emoji 前三名
- 30s 自动刷新
- Prometheus/Zabbix/SkyWalking 需配置数据源后才可用
|
2026-06-18 13:26:38 +00:00 |
|
attacker
|
737f00169f
|
feat: 修复服务器硬件规格(CPU核/内存/磁盘) + Top 5 资源排行
修复:
- agent.go ReceiveReport 写入 cpu(核数)/memory(总内存MB)/disk(总磁盘GB) 到 servers 表
- 之前 Agent 上报只写了 cpu_usage/memory_usage/disk_usage 使用率,硬件规格始终为 0
新功能:
- GET /api/v1/metrics/top?metric=cpu|memory|disk&limit=5 主机排行 API
- HostMonitor 新增 Top 5 排行面板: CPU/内存/磁盘 使用率排名
- TopRankCard 组件: 排名号+主机名+进度条+百分比
|
2026-06-18 13:13:03 +00:00 |
|
attacker
|
06d7451cf9
|
feat: Phase 6 Agent 系统信息+进程监控采集器
- 新增 collector/system.go: SystemCollector(OS/内核/ulimit) + ProcessCollector(Top 5 CPU/内存)
- 模型新增 SystemStat + ProcessStat + ProcessInfo
- Report 结构新增 System + Processes 字段
- Agent 启动时采集系统信息,每周期采集进程列表
|
2026-06-18 13:03:14 +00:00 |
|
attacker
|
2e71371257
|
feat: Phase 2-5 监控中心全栈实现 — 指标浏览器/SNMP/站点拨测/中间件
Phase 2 指标监控:
- 修复 /metrics 路由(原指向 AlertManager → 现指向 MetricsExplorer)
- 新建 MetricsHandler (4 API): targets/list/query/names
- 新建 MetricsExplorer 前端(170行): 目标选择器+指标分类树+多指标叠加SVG图表
Phase 3 SNMP设备:
- 新建 SNMPHandler (9 API): devices CRUD/templates/stats
- SNMPMonitor 接入真实API(428行): 设备表格+添加对话框+删除
Phase 4 站点拨测:
- 新建 SiteHandler (8 API): tasks CRUD/results/stats
- SiteMonitor 接入真实API(542行): 任务表+添加对话框+拨测类型网格
- 新增 siteApi 到 api.ts
Phase 5 中间件采集:
- Agent 新增 collector/middleware.go: Redis INFO + MySQL handshake 采集
- Agent CLI 新增 -redis/-redis-auth/-mysql/-mysql-user/-mysql-pass
- MiddlewareMonitor 接入真实API(301行): 实例卡片+指标面板
基础设施:
- AutoMigrate 新增 23 张监控表
- 前后端容器构建部署验证通过
|
2026-06-18 13:02:19 +00:00 |
|
attacker
|
94dbc89b9b
|
refactor: rename EZOps → AIOps globally (brand unification)
|
2026-06-18 11:57:59 +00:00 |
|
attacker
|
24fa17c2a8
|
feat: 监控架构优化 — 模型层 + Prometheus/Zabbix/SNMP pkg + Dockerfile升级Go1.24
整合 /srv/监控架构优化方案 核心代码:
后端模型(4个新文件):
- monitor.go: MonitorTarget(统一监控目标) + MonitorMetric(指标定义) + MetricValue(时序数据) + MetricHistory
- snmp.go: SNMPDevice + SNMPTemplate + OID模板管理
- site.go: SiteTask(拨测任务) + SiteResult(拨测结果)
- alert_v2.go: 增强告警(多条件规则/模板/升级策略/静默)
后端 pkg(3个包):
- pkg/prometheus/client.go (531行): PromQL查询/Range/Labels/Rules
- pkg/zabbix/client.go: Zabbix API (Host/Item/Trigger/History)
- pkg/snmp/collector.go (621行): gosnmp Walk/BulkWalk/自动发现
基础设施:
- Dockerfile: Go 1.21→1.24 (gosnmp依赖)
- Agent安装弹框: SSH一键安装Tab + server上下文
- 服务器列表操作栏: 安装按钮条件显示/隐藏
Handler层因类型不兼容暂时跳过,模型和客户端包已编译通过。
|
2026-06-18 11:52:10 +00:00 |
|
attacker
|
f3a9e5e8d0
|
feat: 重构监控中心导航,新增资源监控4大模块
- 主菜单「监控告警」→「监控中心」
- 「告警中心」→「告警服务」移至链路追踪下方
- 新增资源监控 Tab 页(主机/中间件/SNMP/站点拨测)
- Agent 新增网络采集器(network)和磁盘IO采集器(diskio)
- 后端扩展 Agent 上报模型,支持 NetworkStat/DiskIOStat
- 前端 ServerTableRow 展示网络和磁盘IO实时指标
- WebSocket MetricsUpdate 推送扩展
|
2026-06-18 09:30:45 +00:00 |
|
attacker
|
020b7a9063
|
fix: cmdTimeout type number
|
2026-06-18 08:04:32 +00:00 |
|
attacker
|
a843ab7b00
|
feat: Redis热数据+K线聚合+Dashboard MySQL指标修复
|
2026-06-18 08:03:49 +00:00 |
|
attacker
|
b8b1a3d5f6
|
fix: 远程命令直连SSH(去轮询) + 去掉无用命令分类
|
2026-06-18 07:56:10 +00:00 |
|
attacker
|
ed3bf59c3b
|
fix: add missing imports (useUserStore, Cpu)
|
2026-06-18 07:25:11 +00:00 |
|
attacker
|
2fc2a2ae07
|
feat: Agent一键安装(loading/成功/失败状态无弹框) + 批量安装API
|
2026-06-18 07:24:24 +00:00 |
|
attacker
|
48b2d2281b
|
fix: AgentWizard URL拼接修正(origin/backend分离) + 复制兼容HTTP/移动端
|
2026-06-18 07:14:19 +00:00 |
|
attacker
|
cdb978fcfc
|
fix: 重写 AgentWizard 复制逻辑 + 手动复制文本框 fallback
|
2026-06-18 03:39:58 +00:00 |
|
attacker
|
3dec5eec2a
|
fix: 合并冲突后重写 Dockerfile (3阶段构建 + alpine mirror + GOTOOLCHAIN)
|
2026-06-18 03:38:22 +00:00 |
|
attacker
|
3a0f5ddb52
|
fix: 清理冲突合并产生的行号前缀
|
2026-06-18 03:37:22 +00:00 |
|
attacker
|
2354959811
|
feat: run.sh四模式(dev/docker/build/binary) + CLI flags + Redka内嵌Redis + Agent复制修复 + 服务器编辑IP字段 + 安装Agent按钮
|
2026-06-18 03:36:04 +00:00 |
|
attacker
|
2e175daf80
|
docs: update dev-log - llm.go handler 拆分
|
2026-06-18 08:04:53 +08:00 |
|
attacker
|
d4fe62f053
|
refactor: 拆分 llm.go(526行) 为三文件(llm.go配置/llm_chat.go对话流式/llm_history.go历史),符合400行handler规范
|
2026-06-18 08:04:27 +08:00 |
|
attacker
|
94e40ebd3f
|
docs: update dev-log - AIOps停止生成按钮
|
2026-06-18 07:07:31 +08:00 |
|
attacker
|
ca8ebb1634
|
feat: AIOps智能助手支持停止生成(AbortController中止流式,保留部分内容+已停止提示)
|
2026-06-18 07:07:01 +08:00 |
|
attacker
|
5d19878b28
|
feat: AIOps智能助手流式输出(SSE代理,逐字渲染+思考中光标+断连安全持久化)
|
2026-06-18 05:07:28 +08:00 |
|
attacker
|
139bddc9d9
|
docs: update dev-log - AIOps快捷操作接入真实平台数据
|
2026-06-18 04:07:24 +08:00 |
|
attacker
|
32cd3b8112
|
feat: AIOps智能助手快捷操作接入真实平台数据(告警/Agent指标/仪表盘统计注入LLM上下文)
|
2026-06-18 04:06:55 +08:00 |
|
attacker
|
ae09faa780
|
docs: update dev-log - AIOps对话历史持久化
|
2026-06-18 03:06:14 +08:00 |
|
attacker
|
32de3709ed
|
feat: AIOps智能助手对话历史持久化(按用户隔离,刷新后仍可见)
|
2026-06-18 03:05:30 +08:00 |
|
attacker
|
6321886b69
|
docs: update dev-log - AIOps智能助手接入真实LLM后端
|
2026-06-18 02:13:23 +08:00 |
|
attacker
|
b8cab7ed0f
|
feat: AIOps智能助手接入真实LLM后端(OpenAI兼容代理+配置持久化)
后端:
- models/llm.go: LLMConfig模型(单行配置)+请求/响应struct
- handlers/llm.go: GetLLMConfig/SaveLLMConfig(脱敏+upsert)/Chat(OpenAI兼容代理)/TestLLMConnection
- routes.go: 注册 /aiops/llm-config(GET/PUT/test)+/aiops/chat(POST)
- database.go: AutoMigrate LLMConfig
- 支持OpenAI/DeepSeek/通义千问/Moonshot/Ollama/自定义6种提供商
- API Key脱敏(仅保留后4位)+回传脱敏值保留原值
- 优雅错误处理(连接超时/401/未配置均返回友好消息)
- 120s超时+AIOps运维助手默认系统提示词
前端:
- AIOpsAssistant.tsx: 全量重写接入真实后端
· 配置弹窗从后端加载(持久化),提供商切换自动填充endpoint/模型
· 启用开关+测试连接按钮+保存反馈
· 真实对话(发送最近10条上下文),思考中spinner,错误红色气泡
· 状态徽章(未配置/在线+模型名),新对话清空
- api.ts: aiApi替代mock aiAssistantApi(getConfig/saveConfig/testConnection/chat)
验证: tsc零错误+build通过+/health正常+前后端联调通过(配置CRUD+API Key脱敏+masked-key保留+chat错误优雅降级) // Logan.Li
|
2026-06-18 02:12:17 +08:00 |
|