# LogPilot **Repository Path**: wangqin.tracker/log-pilot ## Basic Information - **Project Name**: LogPilot - **Description**: AI 原生 Java 错误诊断引擎 — 一个 Maven 依赖实现智能错误监控与自动分析 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

LogPilot

LogPilot

AI 原生 Java 错误诊断引擎
一个 Maven 依赖,让你的 Spring Boot 应用拥有智能错误监控与自动诊断能力

Quick Start AI Models Webhooks Java Spring Boot

--- ## 为什么需要 LogPilot? 线上报错了,你还在做这些事吗? - 登录服务器 → `tail -f` 翻日志 → 复制堆栈 → 粘贴到搜索引擎或 ChatGPT → 逐条排查 - 同一个 `NullPointerException` 一天报了 500 次,被淹没有意义的重复噪音里 - 新来的同事看不懂堆栈,每次都要找老员工帮忙分析 **LogPilot 帮你把这些事自动化了。** 它拦截应用中所有 ERROR 级别日志,用指纹算法自动聚合相同根因的错误,内置 32 条常见 Java 错误的诊断规则实现秒级本地分析,未命中的错误自动调用 AI 给出根因分析和修复建议,然后通过钉钉/企微/飞书把结果推到你的群里。 不需要 ELK,不需要 APM,不需要额外部署任何服务。 ## 核心能力 **智能指纹引擎** — 不是简单的异常类名去重。LogPilot 解析堆栈找到最深层根因,过滤掉 16 类框架帧(Spring、MyBatis、Hikari 等),只保留业务代码帧并计算稳定哈希。同一个数据库超时在不同线程发生会被归为一类,同一个 NPE 出现在不同业务路径会被识别为不同错误。 **本地规则引擎** — 内置 32 条覆盖主流框架的错误诊断规则。SQL 异常、连接池耗尽、网络超时、NPE、OOM、Redis 连接失败、Sa-Token 鉴权异常等常见错误,本地毫秒级匹配,不调 AI,零 token 消耗。规则库支持 YAML 自定义扩展。 **AI 深度分析** — 规则未命中时,自动调用 AI 大模型进行深度分析。AI 不仅看到堆栈,还能看到当时的内存使用、线程数、HTTP 请求信息和 TraceId,给出的分析远比"手动复制堆栈问 ChatGPT"更精准。 **智能采样保护** — 三重防护避免 AI 调用失控:指纹级去重(相同错误冷却期内不重复分析)、每日预算上限(默认 100 次/天)、错误风暴熔断(60 秒内错误激增自动切换到仅记录模式)。 **多模型适配** — 统一适配器架构,支持通义千问、DeepSeek、Kimi、OpenAI 及任何 OpenAI 兼容 API。根据 API URL 自动识别提供商,换模型只需改配置不改代码。 **Webhook 告警** — 支持钉钉、企业微信、飞书三个通道的机器人告警,异步推送 Markdown 格式的诊断报告,包含错误分类、指纹、上下文、规则诊断和 AI 分析结果。 **运行时上下文采集** — 错误发生时自动采集 JVM 内存使用、活跃线程数、当前 HTTP 请求信息、SkyWalking/Micrometer TraceId,为 AI 分析提供完整的运行时快照。 ## 快速开始 ### 1. 添加依赖 ```xml org.dromara ruoyi-common-errorlog ${revision} ``` ### 2. 执行建表 SQL ```sql -- script/sql/sys_error_log.sql ``` ### 3. 配置 Logback 在 `logback-plus.xml` 的 `` 中添加: ```xml ERROR ``` ### 4. 配置 AI(可选) 在 `application.yml` 中添加: ```yaml error-log: ai: api-url: https://dashscope.aliyuncs.com/compatible-mode/v1/ api-key: '你的API Key' model: qwen-turbo ``` > 不配置 AI 也能正常使用。本地规则引擎会处理常见错误,只是未命中的错误不会调用 AI 分析。 ### 5. 配置告警(可选) ```yaml error-log: webhook: dingtalk-webhook: 'https://oapi.dingtalk.com/robot/send?access_token=xxx' dingtalk-secret: 'SECxxx' # 可选 ``` 完成。应用启动后,所有 ERROR 日志将自动被拦截、分析和通知。 ## AI 模型支持 | 提供商 | API 地址 | 推荐模型 | 单次成本 | |--------|---------|---------|---------| | 通义千问 | `https://dashscope.aliyuncs.com/compatible-mode/v1/` | qwen-turbo | ~0.003 元 | | DeepSeek | `https://api.deepseek.com/v1/` | deepseek-chat | ~0.003 元 | | Kimi | `https://api.moonshot.cn/v1/` | moonshot-v1-8k | ~0.008 元 | | OpenAI | `https://api.openai.com/v1/` | gpt-3.5-turbo | ~0.009 元 | > 支持任何兼容 OpenAI Chat Completions API 的服务。provider 留空时根据 URL 自动识别。 ## Webhook 告警 | 通道 | 配置项 | 签名验证 | |------|--------|---------| | 钉钉 | `dingtalk-webhook` + `dingtalk-secret` | HmacSHA256 | | 企业微信 | `wecom-webhook` | 无需签名 | | 飞书 | `feishu-webhook` + `feishu-secret` | HmacSHA256 | ## 完整配置参考 ```yaml error-log: # 总开关 enabled: true # 去重冷却时间(秒) deduplicate-seconds: 60 ai: # provider: qwen # 留空自动检测 api-url: https://dashscope.aliyuncs.com/compatible-mode/v1/ api-key: 'sk-xxx' model: qwen-turbo timeout: 30000 sampler: max-daily: 100 # 每日 AI 调用上限 storm-window-seconds: 60 # 风暴检测窗口 storm-threshold: 50 # 窗口内错误数阈值 webhook: dingtalk-webhook: '' dingtalk-secret: '' wecom-webhook: '' feishu-webhook: '' feishu-secret: '' ``` ## REST API 模块启动后自动注册以下接口: | 方法 | 路径 | 说明 | |------|------|------| | GET | `/monitor/errorlog/list` | 分页查询(支持 status、category 过滤) | | GET | `/monitor/errorlog/{id}` | 查看详情 | | GET | `/monitor/errorlog/stats` | 运行统计(当日 AI 调用数等) | | POST | `/monitor/errorlog/analyze/{id}` | 手动触发 AI 分析 | | POST | `/monitor/errorlog/ignore/{id}` | 标记为已忽略 | | DELETE | `/monitor/errorlog/{ids}` | 批量删除 | ## 架构设计 ``` ERROR日志 → Logback Appender → Spring Event (异步) → 指纹引擎(根因提取 + 业务帧哈希 + 分类) → 智能采样(去重 / 预算 / 风暴熔断) → 规则引擎(32条内置规则,本地毫秒级诊断) → 上下文采集(内存 / 线程 / HTTP / TraceId) → AI 分析(仅规则未命中时调用,省 token) → 数据库持久化 → Webhook 告警(钉钉 / 企微 / 飞书) ``` ## 技术栈 - Java 17 + Spring Boot 3.x - MyBatis-Plus(数据持久化) - Logback(日志拦截) - Hutool + Fastjson2(工具库) - 兼容 OpenAI API 的任意大模型服务 ## 参与贡献 欢迎提交 Issue 和 Pull Request。特别是: - **错误规则贡献**:在 `rules/common-errors.yml` 中补充你遇到的错误模式和诊断经验 - **模型适配**:为非 OpenAI 兼容的模型 API 编写适配器 - **框架集成**:为更多 Java 框架提供开箱即用的 Starter ## License [Apache License 2.0](LICENSE)