{"repo":"GuangYiDing/exception-notify","free":true,"listed":false,"github":"https://github.com/GuangYiDing/exception-notify","clone":"git clone https://github.com/GuangYiDing/exception-notify.git","description":"Spring Boot 异常告警与全链路追踪：推送钉钉、飞书、企微，并提供 AI 辅助分析。","language":"Java","stars":55,"topics":["alerting","developer-tools","exception-handling","observability","spring-boot"],"license":null,"category":"analytics","readme_excerpt":"English 简体中文 📖 简介 Exception-Notify 是一个 Spring Boot Starter 组件，用于捕获 Spring Boot 应用中未处理的异常，并通过钉钉、飞书或企业微信实时告警通知。它能够自动分析异常堆栈信息，定位到异常发生的源代码文件和行号，并通过 GitHub、GitLab 或 Gitee API 获取代码提交者信息，最终将异常详情、TraceID 以及责任人信息发送到钉钉群、飞书群或企业微信群，实现异常的实时上报与全链路追踪。 ✨ 功能特点 - 🎯 基于 @AfterThrowing 自动捕获 Spring Boot 应用中未处理的异常 - 🔍 分析异常堆栈，精确定位异常源码位置（文件名和行号） - 👤 通过 GitHub API、GitLab API 或 Gitee API 的 Git Blame 功能获取代码提交者信息 - 🤖 支持生成 AI 分析链接，结合外部工作台快捷获取修复建议 - 🔗 支持与分布式链路追踪系统集成，关联 TraceID - 📢 支持通过钉钉机器人、飞书机器人和企业微信机器人实时推送异常告警 - ☁️ 支持腾讯云日志服务(CLS)的链路追踪 - 🛡️ 支持异常去重功能，避免短时间内相同异常重复告警 - 💡 零侵入式设计，仅需添加依赖和简单配置即可使用 - 🎨 支持自定义告警模板和告警规则 🚀 快速开始 1️⃣ 添加依赖 在你的 Spring Boot 项目的 pom.xml 文件中添加以下依赖： 2️⃣ 配置参数 在 application.yml 或 application.properties 中添加以下配置： 注意 ：当前环境会自动从 Spring 的 spring.profiles.active 属性中读取，无需手动设置。只有在 exception.notify.environment.report-from 列表中的环境才会上报异常，默认只上报 test 和 prod 环境的异常。 3️⃣ 启动应用 启动你的 Spring Boot 应用，Exception-Notify 将自动注册全局异常处理器，捕获所有被 @Controller 或 @RestController 或 @ExceptionNotify 标记的类中未处理的异常并发送告警。 📮 告警示例 当应用发生未处理的异常时，钉钉群或企业微信群将收到类似以下格式的告警消息： 注意 ：AI 分析链接需要启用 exception.notify.ai.enabled ，并配置可访问的 analysis-page-url 。 ⚙️ 高级配置 🧠 AI 分析工作台 组件会将异常信息、代码上下文等内容序列化为 JSON，在服务端调用 analysis-page-url 所在域名下的 /api/compress 接口生成基于内容的短码（默认为 64 位 SHA-256 十六进制字符串），并在通知中拼接 ?payload=短码 的访问链接。仓库根目录提供了一个基于 React 的示例 Web 项目（ web/ ），用于在浏览器侧加载 JSON 数据并与 AI 服务交互。 🎨 工作台特性 - 📡 流式响应 ：采用 Server-Sent Events (SSE) 流式展示 AI 回答，实时显示生成内容 - 📝 Markdown 渲染 ：完整支持 Markdown 语法，包括标题、列表、代码块等 - 🎨 代码高亮 ：基于 highlight.js 的语法高亮，支持多种编程语言 - 💬 对话式交互 ：","default_branch":null,"files":null,"tree":[],"storefront":"/r/GuangYiDing","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/GuangYiDing/exception-notify/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}