4.7 KiB
4.7 KiB
Acceptance Checklist
面试前环境检查
- 当前分支包含最新 AIOps trace/scope 变更。
- MySQL 可连接。
- Redis 可连接。
- Milvus/Zilliz 可连接。
- 模型 API key 可用。
mvp-demoprofile 开启 mock Prometheus 和 mock CLS。
启动:
mvn spring-boot:run "-Dspring-boot.run.profiles=mvp-demo"
编译检查:
mvn -q -DskipTests compile
目标测试:
mvn -q "-Dtest=AiOpsServiceTest,ChatServiceSequentialAgentTest,DiagnosisTraceServiceTest" test
Chat Demo 验收
请求:
$sessionId = "interview-chat-payment-timeout-001"
$body = @{
Id = $sessionId
Question = "支付接口最近出现超时,请结合知识库、日志和指标判断可能原因,并给出修复建议。"
} | ConvertTo-Json
Invoke-RestMethod `
-Method Post `
-Uri "http://localhost:9900/api/chat" `
-ContentType "application/json" `
-Body $body
验收:
- 返回
data.success = true。 - 返回
data.sessionId = interview-chat-payment-timeout-001。 diagnosis_session.agent_flow = CHAT。- trace API 返回 session、steps、toolInvocations。
- 复杂问题下 trace 中能看到 verifier 相关数据。
SQL:
python scripts/query_mysql.py "SELECT session_id, agent_flow, status, step_count, tool_call_count FROM diagnosis_session WHERE session_id='interview-chat-payment-timeout-001'"
AIOps Demo 验收
请求:
$aiopsSessionId = "interview-aiops-payment-cpu-001"
$aiopsBody = @{
sessionId = $aiopsSessionId
alertName = "HighCPUUsage"
service = "payment-service"
severity = "P1"
description = "服务 payment-service 的 CPU 使用率持续超过 80%,当前值为 92%。实例: pod-payment-service-7d8f9c6b5-x2k4m。"
timeRange = "last_15m"
userRequest = "请结合 Prometheus 活动告警、system-metrics 日志和知识库生成告警分析报告。"
} | ConvertTo-Json
Invoke-WebRequest `
-Method Post `
-Uri "http://localhost:9900/api/ai_ops" `
-ContentType "application/json" `
-Body $aiopsBody
验收:
- SSE 首条包含
type=session。 - SSE 最后包含
type=done。 diagnosis_session.agent_flow = AI_OPS。diagnosis_session.status = SUCCESS。diagnosis_session.answer有最终报告。- trace API 返回 AIOps steps 和 tool invocations。
- 报告主章节聚焦
HighCPUUsage/payment-service。 - 无
告警根因分析 - HighMemoryUsage独立章节。 - 无
告警根因分析 - SlowResponse独立章节。 - 有“相关风险告警”或类似上下文说明。
SQL:
python scripts/query_mysql.py "SELECT session_id, agent_flow, status, total_duration_ms, step_count, tool_call_count FROM diagnosis_session WHERE session_id='interview-aiops-payment-cpu-001'"
python scripts/query_mysql.py "SELECT tool_name, COUNT(*) AS cnt FROM tool_invocation WHERE session_id='interview-aiops-payment-cpu-001' GROUP BY tool_name ORDER BY tool_name"
Scope 检查:
python scripts/query_mysql.py "SELECT (answer LIKE '%告警根因分析 - HighCPUUsage%') AS has_main_root_cause, (answer LIKE '%告警根因分析 - HighMemoryUsage%') AS has_memory_root_cause, (answer LIKE '%告警根因分析 - SlowResponse%') AS has_slow_root_cause, (answer LIKE '%相关风险告警%') AS has_related_risk FROM diagnosis_session WHERE session_id='interview-aiops-payment-cpu-001'"
期望:
has_main_root_cause = 1
has_memory_root_cause = 0
has_slow_root_cause = 0
has_related_risk = 1
Trace API 验收
Invoke-RestMethod `
-Method Get `
-Uri "http://localhost:9900/api/diagnosis/interview-aiops-payment-cpu-001/trace"
若 PowerShell 对长 JSON 或特殊字符不稳定,可以用:
curl.exe --silent --show-error --max-time 60 "http://localhost:9900/api/diagnosis/interview-aiops-payment-cpu-001/trace"
常见问题
MySQL stale connection
现象:
HikariPool - Connection is not available
No operations allowed after connection closed
当前已在 application.yml 配置:
maximum-pool-size: 5minimum-idle: 1connection-timeout: 10000validation-timeout: 5000idle-timeout: 60000max-lifetime: 120000keepalive-time: 30000
处理:
- 重新编译或重启服务。
- 确认日志中新的 HikariPool 启动成功。
- 再跑 trace 或 AIOps 请求。
SSE 客户端显示异常
PowerShell Invoke-WebRequest 有时对 SSE 或长 JSON 处理不稳定。可以改用 curl.exe 或直接查询 MySQL 和 trace API 验证结果。
OpenSpec 全量校验失败
openspec validate --all --strict 可能因为历史未完成 change 失败。面试材料主要依赖已归档的 AIOps spec 和 MVP trace spec,可以单独验证相关 spec。