exception-analysis

star 623

异常分析核心功能。当用户需要分析线上故障、排查错误原因时使用此技能。

bage2014 By bage2014 schedule Updated 6/10/2026

name: "exception-analysis" description: "异常分析核心功能。当用户需要分析线上故障、排查错误原因时使用此技能。"

异常分析技能

功能描述

提供完整的异常分析能力,基于 Plan-Execute-React 模式,整合多源数据进行智能根因分析,生成结构化分析报告和修复建议。

何时使用

在以下情况调用此技能:

  • 分析线上故障和错误
  • 排查系统异常原因
  • 生成根因分析报告
  • 基于用户反馈优化分析结果

核心功能

  • 问题分析:输入问题描述和错误信息,生成完整分析报告
  • 多轮验证:基于用户反馈重新分析
  • 结构化输出:包含可能的根本原因和修复建议
  • 多源数据收集:整合发布记录、监控数据、代码信息、拓扑依赖
  • 干扰项过滤:识别并标记与告警无关的干扰证据

输入参数

参数 类型 必填 说明
appId String 应用ID
alarmDescription String 告警描述
alarmUrl String 告警链接
alarmTime DateTime 告警时间
scene String 场景参数(default/mq_backlog/high_error/cpu_overload/memory_low)

输出格式

{
  "analysisId": "ANALYSIS-1234567890",
  "appId": "app-001",
  "alarmDescription": "用户登录失败率突然升高",
  "analysisTime": "2024-01-15T10:35:00",
  "rootCause": {
    "type": "高错误率",
    "description": "当前错误率超过阈值",
    "confidence": "85%"
  },
  "evidences": [
    {
      "source": "发布记录",
      "content": "最近发布版本: 1.2.3",
      "relevance": "高"
    }
  ],
  "suggestions": ["检查服务日志", "查看失败请求"]
}

分析流程

输入请求 → 模块识别 → 数据收集(MCP) → 证据整合 → 根因分析 → 生成报告

详细步骤

  1. 模块识别:从告警描述中提取涉及的业务模块(下单、改单、支付、取消、出票、退票、扣位)
  2. 数据收集:调用各 MCP 服务收集上下文数据
    • 发布记录 MCP
    • 请求量监控 MCP
    • 应用监控 MCP(CPU、内存、GC、线程等)
    • 代码仓库 MCP
    • 拓扑依赖 MCP(MQ、JOB等)
  3. 证据整合:整合所有收集的数据,标记干扰项
  4. 根因分析:基于多源数据判断根因类型
  5. 建议生成:根据根因类型生成修复建议

根因分析规则

根因类型 判断条件 置信度
MQ积压 MQ积压且与告警模块相关 90%
高错误率 错误率 > 10% 85%
CPU过载 CPU使用率 > 80% 80%
内存不足 内存使用率 > 85% 75%
模块异常 告警描述涉及特定模块 75%
发布问题 存在最近发布记录 70%
认证问题 涉及登录/认证/token 65%

API 调用示例

# 分析问题
curl -X POST http://localhost:8080/api/analysis/analyze \
  -H "Content-Type: application/json" \
  -d '{
    "appId": "app-001",
    "alarmDescription": "下单接口错误率异常升高",
    "alarmUrl": "https://monitor.example.com/alarm/123",
    "alarmTime": "2024-01-15T10:30:00"
  }'

# Mock分析(支持场景参数)
curl "http://localhost:8080/api/analysis/analyze/mock?scene=mq_backlog"

# 健康检查
curl http://localhost:8080/api/analysis/health

相关文件

文件路径 描述
service/impl/AnalysisServiceImpl.java 核心分析逻辑实现
controller/AnalysisController.java REST API 控制层
mcp/DeploymentMcpService.java 发布记录 MCP
mcp/MetricsMcpService.java 监控指标 MCP
mcp/CodeMcpService.java 代码仓库 MCP
mcp/TopologyMcpService.java 拓扑依赖 MCP
context/ 上下文数据模型
dto/ 请求响应 DTO

配置要求

环境变量

变量名 说明 默认值
DEEPSEEK_API_KEY DeepSeek API Key -
OPENAI_API_KEY OpenAI API Key -
SERVER_PORT 服务端口 8080

配置文件

# application.yml
server:
  port: ${SERVER_PORT:8080}

扩展指南

添加新的根因类型

  1. AnalysisServiceImpl.analyzeRootCause() 方法中添加新假设判断
  2. generateSuggestions() 方法中添加对应修复建议
  3. 更新本文档中的根因类型表

添加新的业务模块

  1. ALL_MODULES 列表中添加模块名称
  2. generateDisturbanceError() 方法中添加干扰项错误消息
  3. TopologyMcpService 中添加模块依赖配置

添加新的 MCP 服务

  1. 创建新的 MCP 服务类,实现数据提供逻辑
  2. AnalysisServiceImpl 中注入并调用
  3. 更新 collectEvidences() 方法收集新证据

日志记录

分析过程中记录以下关键日志:

  • 分析开始: 记录输入参数
  • 数据收集: 记录请求量、应用监控、发布记录、代码信息
  • 模块识别: 记录识别到的模块
  • 拓扑分析: 记录应用拓扑结构
  • MQ/JOB指标: 记录积压和失败情况
  • 证据收集: 记录证据数量和相关性统计
  • 根因分析: 记录各假设验证过程和结果
  • 分析完成: 记录最终结论
Install via CLI
npx skills add https://github.com/bage2014/study --skill exception-analysis
Repository Details
star Stars 623
call_split Forks 111
navigation Branch main
article Path SKILL.md
More from Creator