feat: AI告警智能分析接入真实后端告警事件 — 替换硬编码mock为动态分析

- AIAlertAnalyzer: 从 GET /alerts 加载真实告警事件(替代4条硬编码mock)
- mapAlertEvent: 映射AlertEvent→AlertItem(解析表达式提取指标/阈值,计算持续时间)
- generateAIAnalysis: 按指标类型(CPU/内存/磁盘/网络/服务)动态生成根因分析/影响评估/修复建议/自动修复脚本
- Dashboard: 服务器/告警增长率标签从硬编码改为数据驱动(基于error/week_count)
- DomainManager: 到期时间截取YYYY-MM-DD格式
- PipelineManager: 流水线创建传递stages/code/type字段
This commit is contained in:
attacker committed 2026-06-14 14:07:03 +08:00
1 parent bae3a2f013
commit b99e971fc9
4 files changed
+216 -140

No files matched your search

@@ -195,11 +195,25 @@ export function PipelineManager() {
const handleCreatePipeline = async () => {
try {
const selectedTemplate = pipelineTemplates.find(t => t.id === newPipeline.template);
const stages = selectedTemplate
? JSON.stringify(selectedTemplate.stages.map((name, i) => ({
id: `stage-${i + 1}`, name, status: 'pending', duration: '-', logs: [],
})))
: '';
const code = newPipeline.name
.toLowerCase()
.replace(/[^a-z0-9]/g, '-')
.replace(/-+/g, '-')
.replace(/^-|-$/g, '') || `pipeline-${Date.now()}`;
await pipelineApi.createPipeline({
name: newPipeline.name,
code,
description: newPipeline.description,
repository: newPipeline.repository,
source: newPipeline.repository,
branch: newPipeline.branch,
type: 'deploy',
stages,
});
setIsCreateDialogOpen(false);
setNewPipeline({ name: '', description: '', repository: '', branch: 'main', template: '' });