attacker
ca036a85ca
feat(k8s): F7 集群详情EventsTab真实后端对接 + go vet修复
1. EventsTab.tsx: DEMO_EVENTS硬编码→kubernetesApi.getEvents真实K8s事件
- 复用 normalizeK8sEvent/formatEventRelative 工具(与 EventsPage 一致)
- 新增 loading/empty 状态 + 刷新按钮
- Warning事件优先排序 + 限100条防溢出
- KubernetesClusterDetail 传入 clusterCode prop
- 修复 Q28 组件拆分时遗留的 demo 数据未对接缺口
2. aiops_alert_analysis.go: log.Printf %s→%d 修复 go vet 失败
- AlertID 类型为 uint, %s 格式符不匹配致 go test 构建失败
- go vet ./... 全量零错误
验证: tsc -b=0, npm build✓ (18.00s), go build=0, go vet=0, 17/17测试通过
Events API 返回5条真实事件 (type=Normal, reason=Pulled, count=5487)
2026-07-16 21:23:19 +08:00
..
2026-07-04 01:50:36 +08:00
2026-07-01 23:44:45 +08:00
2026-07-04 01:50:36 +08:00
2026-07-05 23:49:36 +08:00
2026-07-02 07:47:33 +08:00
2026-06-25 20:16:30 +08:00
2026-07-01 23:44:45 +08:00
2026-07-16 21:23:19 +08:00
2026-07-05 23:49:36 +08:00
2026-07-01 23:44:45 +08:00
2026-06-25 20:16:30 +08:00
2026-07-02 07:47:33 +08:00
2026-07-01 23:44:45 +08:00
2026-07-02 07:47:33 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-06-28 01:51:00 +08:00
2026-06-25 20:16:30 +08:00
2026-07-01 23:44:45 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 22:51:25 +08:00
2026-06-25 22:51:25 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-07-05 23:49:36 +08:00
2026-07-01 12:13:53 +08:00
2026-07-05 23:49:36 +08:00
2026-07-05 23:49:36 +08:00
2026-07-01 23:44:45 +08:00
2026-06-25 20:16:30 +08:00
2026-07-04 01:50:36 +08:00
2026-07-04 01:50:36 +08:00
2026-07-02 07:47:33 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-07-04 01:50:36 +08:00
2026-07-04 01:50:36 +08:00
2026-07-04 01:50:36 +08:00
2026-07-05 23:49:36 +08:00
2026-06-27 23:28:04 +08:00
2026-07-01 23:44:45 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-07-05 23:49:36 +08:00
2026-07-01 23:44:45 +08:00
2026-06-25 20:16:30 +08:00
2026-06-26 15:13:35 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 04:50:58 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 04:50:58 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-27 04:50:58 +08:00
2026-06-26 23:18:05 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-27 07:20:11 +08:00
2026-07-02 22:45:49 +08:00
2026-07-02 22:45:49 +08:00
2026-07-02 22:45:49 +08:00
2026-07-02 22:45:49 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 12:13:53 +08:00
2026-06-25 20:16:30 +08:00
2026-07-01 23:44:45 +08:00
2026-07-02 07:47:33 +08:00
2026-07-02 07:47:33 +08:00
2026-07-02 07:47:33 +08:00
2026-07-02 07:47:33 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-07-02 07:47:33 +08:00
2026-07-02 07:47:33 +08:00
2026-06-25 20:16:30 +08:00
2026-07-02 07:47:33 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-07-04 01:50:36 +08:00
2026-07-04 01:50:36 +08:00
2026-07-06 07:16:39 +08:00
2026-07-05 23:49:36 +08:00
2026-07-06 07:16:39 +08:00
2026-07-01 23:44:45 +08:00
2026-06-30 23:25:04 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 22:51:25 +08:00
2026-07-04 01:50:36 +08:00
2026-07-04 01:50:36 +08:00
2026-06-28 23:43:34 +08:00
2026-07-04 01:50:36 +08:00
2026-07-04 01:50:36 +08:00
2026-06-25 20:16:30 +08:00
2026-07-02 07:47:33 +08:00
2026-07-02 07:47:33 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-01 23:44:45 +08:00
2026-07-06 07:16:39 +08:00
2026-07-02 07:47:33 +08:00
2026-06-28 01:51:00 +08:00
2026-06-28 01:51:00 +08:00
2026-07-01 23:44:45 +08:00
2026-07-06 07:16:39 +08:00
2026-06-25 22:51:25 +08:00
2026-07-04 01:50:36 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00