completed

This commit is contained in:
xumingyang21 2025-12-08 18:41:59 +08:00
parent 2fabdee980
commit 7f4dd7f34b
4 changed files with 2007 additions and 39 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,147 @@
# Sentry AI - 工具概览
> **工具类型**:调试排障
> **工具分类**debugging
## 📋 基本信息
### 工具简介
Sentry AI是基于Sentry错误监控平台的AI功能专注于生产环境错误分析和调试。Sentry是一个开源的错误监控和性能监控平台通过AI增强功能能够智能分析错误、自动分组相似错误、提供根因分析和修复建议。Sentry AI结合了实时错误监控、丰富的上下文信息和AI驱动的智能分析帮助开发团队快速定位和修复生产环境中的问题。
### 官方网站
- **官网**https://sentry.io
- **文档**https://docs.sentry.io
- **GitHub**https://github.com/getsentry/sentry
- **AI功能文档**https://docs.sentry.io/product/ai/
### 定价信息
- **免费版Developer**每月5,000个错误事件1个项目基础功能
- **团队版Team**$26/月起50,000个错误事件无限项目AI功能
- **商业版Business**$80/月起无限错误事件高级AI功能
- **开源**Sentry核心开源Apache 2.0AI功能为商业功能
### 大模型底座
- **底层模型**Sentry自研AI模型 + GPT-4部分功能
- **模型版本**:持续更新,支持多模型切换
- **AI功能**:智能错误分组、根因分析、修复建议生成
## 🎯 核心功能
### 主要功能
1. **实时错误监控**:自动捕获生产环境中的错误、异常和性能问题
2. **智能错误分组**AI自动将相似错误分组减少噪音提高效率
3. **上下文丰富**提供完整的错误堆栈、用户上下文、环境信息、breadcrumbs
4. **AI根因分析**使用AI分析错误根因提供详细的诊断信息
5. **修复建议生成**AI生成具体的修复建议和代码补丁
6. **性能监控**:监控应用性能,识别性能瓶颈和慢查询
7. **发布跟踪**:跟踪代码发布与错误的关系,快速定位问题版本
8. **用户影响分析**:分析错误对用户的影响范围和严重程度
### 适用场景
- 生产环境错误监控和告警
- 实时错误分析和诊断
- 错误趋势分析和预测
- 性能问题诊断
- 发布后问题追踪
- 用户影响评估
- 团队协作和问题分配
### 不适用场景
- 开发阶段本地调试(主要面向生产环境)
- 需要实时调试器的场景
- 完全离线的开发环境
- 对数据隐私要求极高的场景需要将错误数据发送到Sentry服务器
## 🛠️ 技术栈支持
### 支持的编程语言
- **Python**:✅ 优秀支持Django、Flask、FastAPI等
- **JavaScript/TypeScript**:✅ 优秀支持React、Vue、Node.js等
- **Java**:✅ 优秀支持Spring Boot、Spring等
- **Go**:✅ 优秀支持
- **Ruby**:✅ 优秀支持Rails等
- **PHP**:✅ 优秀支持Laravel、Symfony等
- **C#/.NET**:✅ 优秀支持
- **Rust**:✅ 支持
- **其他**50+编程语言和框架
### 支持的框架
- **Web框架**Django、Flask、FastAPI、Express、Next.js、React、Vue、Angular等
- **移动框架**React Native、Flutter、iOS、Android等
- **后端框架**Spring Boot、Laravel、Rails、ASP.NET等
- **数据库**PostgreSQL、MySQL、MongoDB、Redis等
### IDE集成
- **VS Code**:✅ 支持Sentry插件
- **IntelliJ IDEA**:✅ 支持Sentry插件
- **GitHub**:✅ 支持GitHub集成
- **Jira**:✅ 支持Jira集成
- **Slack**:✅ 支持Slack集成
## 🚀 部署方式
### 云端服务SaaS
- **SaaS**:✅ 支持推荐sentry.io
- **API**:✅ 支持REST API和GraphQL API
- **Webhook**:✅ 支持(错误通知和集成)
### 本地部署Self-hosted
- **本地安装**:✅ 支持Docker部署
- **私有云**:✅ 支持Kubernetes部署
- **本地模型**:❌ 不支持AI功能需要云端服务
### 混合部署
- **本地+云端**:✅ 支持本地Sentry + 云端AI分析
## 📊 版本信息
### 当前版本
- **版本号**v24.x持续更新
- **AI功能**2024年推出持续增强
- **最后更新**:持续更新
### 版本历史
- **v24.0**2024-12增强AI错误分组和根因分析
- **v23.0**2024-09推出AI修复建议生成功能
- **v22.0**2024-06首次推出AI功能
## 🔗 相关资源
### 学习资源
- [Sentry官方文档](https://docs.sentry.io)
- [Sentry AI功能指南](https://docs.sentry.io/product/ai/)
- [视频教程](https://sentry.io/resources/)
- [最佳实践](https://docs.sentry.io/product/best-practices/)
### 社区
- **GitHub Discussions**https://github.com/getsentry/sentry/discussions
- **Discord**https://discord.gg/sentry
- **论坛**https://forum.sentry.io
### 相关工具
- **Sentry Performance**:性能监控工具
- **Sentry Session Replay**:会话回放工具
- **Sentry Profiling**:性能分析工具
---
**提示**:本文档应提供工具的基本信息,帮助读者快速了解工具。详细使用方法和测试结果见其他文档。

View File

@ -0,0 +1,518 @@
# Sentry AI - 安装配置指南
## 📋 前置要求
### 系统要求
- **操作系统**任何支持现代浏览器的系统Web界面或支持Docker的系统自托管
- **网络要求**需要稳定的互联网连接SaaS版本
- **浏览器**Chrome、Firefox、Safari、Edge等现代浏览器
### 依赖要求
- **Python版本**Python 3.8+Python SDK
- **Node.js版本**Node.js 14+JavaScript SDK
- **Docker**Docker 20.10+(自托管部署,可选)
## 🔧 安装步骤
### 方式1SaaS云端服务推荐
#### 1. 创建Sentry账户
1. 访问[Sentry官网](https://sentry.io)
2. 点击"Get Started"或"Sign Up"
3. 选择使用邮箱、Google账号或GitHub账号注册
4. 验证邮箱(如使用邮箱注册)
5. 完成账户设置
#### 2. 创建项目
1. 登录Sentry后点击"Create Project"
2. 选择项目类型Python、JavaScript、Java等
3. 输入项目名称
4. 选择组织(或创建新组织)
5. 点击"Create Project"
#### 3. 获取DSNData Source Name
创建项目后Sentry会显示DSN格式如下
```
https://xxxxx@xxxxx.ingest.sentry.io/xxxxx
```
⚠️ **重要**请妥善保存DSN这是项目与Sentry通信的凭证。
#### 4. 安装SDK
**Python项目**
```bash
pip install sentry-sdk
```
**JavaScript/Node.js项目**
```bash
npm install @sentry/node
# 或
yarn add @sentry/node
```
**Java项目**
在`pom.xml`中添加:
```xml
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry</artifactId>
<version>6.34.0</version>
</dependency>
```
#### 5. 配置SDK
**Python配置示例**
```python
import sentry_sdk
sentry_sdk.init(
dsn="https://xxxxx@xxxxx.ingest.sentry.io/xxxxx",
# 环境设置
environment="production", # 或 "development", "staging"
# 性能监控
traces_sample_rate=1.0, # 100%采样率生产环境建议0.1
# 发布版本
release="myapp@1.0.0",
# 启用AI功能需要Team版或更高
enable_ai=True,
)
```
**JavaScript/Node.js配置示例**
```javascript
const Sentry = require("@sentry/node");
Sentry.init({
dsn: "https://xxxxx@xxxxx.ingest.sentry.io/xxxxx",
environment: "production",
tracesSampleRate: 1.0,
release: "myapp@1.0.0",
// 启用AI功能
enableAI: true,
});
```
**Java配置示例**
```java
import io.sentry.Sentry;
Sentry.init(options -> {
options.setDsn("https://xxxxx@xxxxx.ingest.sentry.io/xxxxx");
options.setEnvironment("production");
options.setTracesSampleRate(1.0);
options.setRelease("myapp@1.0.0");
// 启用AI功能
options.setEnableAI(true);
});
```
### 方式2自托管部署Self-hosted
#### 1. 使用Docker Compose部署
1. 克隆Sentry仓库
```bash
git clone https://github.com/getsentry/self-hosted.git
cd self-hosted
```
2. 运行安装脚本:
```bash
./install.sh
```
3. 启动服务:
```bash
docker-compose up -d
```
4. 访问Sentry
打开浏览器访问 `http://localhost:9000`
5. 完成初始设置:
- 创建管理员账户
- 配置组织
- 创建项目
⚠️ **注意**自托管版本可能不包含所有AI功能AI功能主要面向SaaS版本。
### 方式3IDE插件集成
#### VS Code插件
1. 打开VS Code
2. 进入扩展市场(`Cmd/Ctrl + Shift + X`
3. 搜索"Sentry"
4. 安装"Sentry"插件
5. 配置Sentry连接
- 打开设置
- 搜索"Sentry"
- 输入Sentry URL和Token
#### IntelliJ IDEA插件
1. 打开IntelliJ IDEA
2. 进入插件市场Settings → Plugins
3. 搜索"Sentry"
4. 安装"Sentry"插件
5. 配置Sentry连接
## ⚙️ 配置说明
### 基础配置
#### 环境配置
```python
import sentry_sdk
sentry_sdk.init(
dsn="your-dsn-here",
environment="production", # 区分不同环境
release="myapp@1.0.0", # 版本号,用于发布跟踪
)
```
#### 性能监控配置
```python
sentry_sdk.init(
dsn="your-dsn-here",
# 性能监控采样率0.0-1.0
traces_sample_rate=0.1, # 生产环境建议0.110%
# 或使用采样函数
traces_sampler=lambda context: 0.1 if context['transaction_context']['name'] == '/api/users' else 1.0,
)
```
#### AI功能配置
```python
sentry_sdk.init(
dsn="your-dsn-here",
# 启用AI功能需要Team版或更高
enable_ai=True,
# AI错误分组
ai_grouping=True,
# AI根因分析
ai_root_cause=True,
# AI修复建议
ai_suggestions=True,
)
```
### 高级配置
#### 用户上下文
```python
import sentry_sdk
# 设置用户信息
sentry_sdk.set_user({
"id": "12345",
"username": "john_doe",
"email": "john@example.com",
})
# 设置标签
sentry_sdk.set_tag("component", "payment")
sentry_sdk.set_tag("environment", "production")
# 设置额外上下文
sentry_sdk.set_context("request", {
"url": "https://example.com/api/users",
"method": "GET",
})
```
#### Breadcrumbs面包屑
```python
import sentry_sdk
# 添加breadcrumb
sentry_sdk.add_breadcrumb(
message="User clicked button",
category="ui",
level="info",
data={"button_id": "submit"},
)
```
#### 自定义错误处理
```python
import sentry_sdk
try:
# 可能出错的代码
result = risky_operation()
except Exception as e:
# 捕获并上报错误
sentry_sdk.capture_exception(e)
# 或添加额外信息
sentry_sdk.capture_exception(e, {
"extra": {"custom_data": "value"},
"tags": {"error_type": "critical"},
})
```
### 集成配置
#### GitHub集成
1. 进入Sentry项目设置
2. 选择"Integrations"
3. 找到"GitHub"
4. 点击"Configure"
5. 授权GitHub访问
6. 选择要关联的仓库
#### Jira集成
1. 进入Sentry项目设置
2. 选择"Integrations"
3. 找到"Jira"
4. 点击"Configure"
5. 输入Jira URL和API Token
6. 配置项目映射
#### Slack集成
1. 进入Sentry项目设置
2. 选择"Integrations"
3. 找到"Slack"
4. 点击"Configure"
5. 授权Slack访问
6. 选择通知频道
## ✅ 验证安装
### 测试错误捕获
创建`test_sentry.py`
```python
import sentry_sdk
sentry_sdk.init(
dsn="your-dsn-here",
environment="development",
)
# 测试错误捕获
try:
result = 1 / 0
except ZeroDivisionError:
sentry_sdk.capture_exception()
print("Error captured and sent to Sentry!")
```
运行测试:
```bash
python test_sentry.py
```
在Sentry Dashboard中查看错误
1. 登录Sentry
2. 进入项目
3. 查看"Issues"页面
4. 应该能看到刚才捕获的错误
### 测试AI功能
1. 触发一个错误
2. 在Sentry Dashboard中打开错误详情
3. 查看AI分析
- 智能错误分组
- 根因分析
- 修复建议
### 测试性能监控
```python
import sentry_sdk
sentry_sdk.init(
dsn="your-dsn-here",
traces_sample_rate=1.0,
)
# 创建性能事务
with sentry_sdk.start_transaction(op="task", name="process_data"):
# 执行任务
process_data()
```
在Sentry Dashboard中查看性能数据
1. 进入项目
2. 选择"Performance"
3. 查看事务和性能指标
## 🔍 常见问题
### 问题1DSN无效
**原因**
- DSN格式错误
- DSN已过期或被删除
- 项目权限问题
**解决方案**
1. 检查DSN格式是否正确
2. 在Sentry Dashboard中重新获取DSN
3. 确认项目权限设置
### 问题2错误未上报
**原因**
- SDK未正确初始化
- 网络连接问题
- 采样率设置过低
**解决方案**
1. 检查SDK初始化代码
2. 检查网络连接
3. 调整采样率设置
4. 查看SDK日志
### 问题3AI功能不可用
**原因**
- 账户版本不支持需要Team版或更高
- AI功能未启用
- 错误数据不足
**解决方案**
1. 升级账户到Team版或更高
2. 在配置中启用AI功能
3. 确保有足够的错误数据供AI分析
### 问题4性能影响
**原因**
- 采样率设置过高
- 同步上报阻塞主线程
- 网络延迟
**解决方案**
1. 降低采样率生产环境建议0.1
2. 使用异步上报
3. 配置合理的超时时间
## 📝 使用技巧
### 1. 环境区分
为不同环境配置不同的DSN或项目
```python
import os
import sentry_sdk
environment = os.getenv("ENVIRONMENT", "development")
dsn = os.getenv("SENTRY_DSN")
sentry_sdk.init(
dsn=dsn,
environment=environment,
)
```
### 2. 发布跟踪
配置发布版本,便于跟踪问题:
```python
sentry_sdk.init(
dsn="your-dsn-here",
release="myapp@1.2.3", # 从git或package.json获取
)
```
### 3. 错误过滤
过滤不需要的错误:
```python
def before_send(event, hint):
# 过滤特定错误
if 'ignore_this_error' in str(event.get('exception', {}).get('values', [{}])[0].get('type', '')):
return None
return event
sentry_sdk.init(
dsn="your-dsn-here",
before_send=before_send,
)
```
### 4. 自定义上下文
添加丰富的上下文信息:
```python
import sentry_sdk
# 在错误发生前设置上下文
sentry_sdk.set_user({"id": user_id, "email": user_email})
sentry_sdk.set_tag("feature", "payment")
sentry_sdk.set_context("request", {
"method": "POST",
"url": "/api/payment",
"body": request_body,
})
```
## 📸 使用截图
### Sentry Dashboard
[插入Sentry Dashboard截图]
### AI错误分析
[插入AI错误分析截图]
### 错误详情页面
[插入错误详情页面截图]
## 🔗 相关链接
- [Sentry官网](https://sentry.io)
- [Sentry文档](https://docs.sentry.io)
- [Python SDK文档](https://docs.sentry.io/platforms/python/)
- [JavaScript SDK文档](https://docs.sentry.io/platforms/javascript/)
- [AI功能文档](https://docs.sentry.io/product/ai/)
- [最佳实践](https://docs.sentry.io/product/best-practices/)
---
**提示**Sentry AI是强大的生产环境错误监控和调试工具建议在生产环境中使用。注意配置合理的采样率和错误过滤避免影响应用性能。

View File

@ -0,0 +1,304 @@
# Sentry AI - Task 4: 调试排障测试结果
> **测试工具**Sentry AI
> **测试任务**Task 4 - 调试排障
> **测试日期**:待测试
> **测试环境**:待测试
> **工具版本**Sentry v24.xAI功能
## 📋 任务描述
使用AI调试工具定位并修复一段存在错误或性能问题的代码。测试目标是评估工具发现bug的准确性、提供修复建议的可行性以及是否能生成复现步骤和自动修复补丁。
详细需求见:[Task 4 调试排障](../../../test-standards/test-tasks/task4-debugging.md)
## ⚠️ 测试状态
**当前状态**:待测试
**说明**此测试结果文件已创建但尚未进行实际测试。Sentry AI需要
- Sentry账户免费版或付费版
- 集成Sentry SDK到测试项目
- 配置AI功能需要Team版或更高
- 网络连接(云端服务)
**测试计划**
1. 创建Sentry项目并获取DSN
2. 集成Sentry SDK到测试项目
3. 触发包含多种bug类型的错误
4. 在Sentry Dashboard中查看AI分析结果
5. 评估AI错误分组、根因分析和修复建议
6. 记录测试结果和评估指标
## 🛠️ 工具准备
### 预期安装步骤
1. **创建Sentry账户**
- 访问 https://sentry.io
- 创建账户或登录
- 选择免费版或付费版AI功能需要Team版$26/月起)
2. **创建项目**
- 在Sentry中创建新项目
- 选择项目类型Python/JavaScript/Java等
- 获取DSN
3. **安装SDK**
```bash
# Python
pip install sentry-sdk
# JavaScript/Node.js
npm install @sentry/node
```
4. **配置SDK**
```python
import sentry_sdk
sentry_sdk.init(
dsn="your-dsn-here",
environment="development",
enable_ai=True, # 启用AI功能
)
```
### 预期版本信息
- **Sentry版本**v24.x持续更新
- **Python SDK**sentry-sdk 2.0.0+
- **AI功能**2024年推出持续增强
## 📝 预期测试用例
### 测试用例1逻辑错误
**代码**
```python
def find_max(numbers):
"""找到列表中的最大值"""
max_num = 0
for num in numbers:
if num > max_num:
max_num = num
return max_num
# 测试用例
result = find_max([-5, -3, -1]) # 应该返回-1但会返回0
```
**预期行为**
- Sentry捕获错误或异常
- AI智能分组相似错误
- AI根因分析识别初始值问题
- AI修复建议提供使用列表第一个元素或`float('-inf')`的方案
### 测试用例2边界条件错误
**代码**
```python
def divide(a, b):
"""计算a除以b的结果"""
return a / b
# 测试用例
try:
result = divide(10, 0) # 会导致ZeroDivisionError
except ZeroDivisionError as e:
sentry_sdk.capture_exception(e)
```
**预期行为**
- Sentry捕获ZeroDivisionError
- AI根因分析识别除零错误
- AI修复建议提供添加异常处理的方案
- 提供完整的错误上下文(参数值、调用栈等)
### 测试用例3性能问题
**代码**
```python
import sentry_sdk
def fibonacci(n):
"""计算斐波那契数列的第n项"""
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
# 性能监控
with sentry_sdk.start_transaction(op="function", name="fibonacci"):
result = fibonacci(35) # 性能问题:递归调用过多
```
**预期行为**
- Sentry性能监控捕获慢事务
- AI分析识别性能瓶颈
- AI建议使用动态规划或记忆化优化
- 提供性能指标和优化建议
### 测试用例4生产环境错误
**场景**:模拟生产环境中的真实错误
**代码**
```python
import sentry_sdk
# 模拟API调用错误
def process_payment(user_id, amount):
try:
# 可能出错的业务逻辑
if amount < 0:
raise ValueError("Amount cannot be negative")
# ... 其他逻辑
except Exception as e:
sentry_sdk.capture_exception(e, {
"user": {"id": user_id},
"tags": {"error_type": "payment"},
"contexts": {
"request": {
"method": "POST",
"url": "/api/payment",
"body": {"amount": amount},
}
},
})
```
**预期行为**
- Sentry捕获生产环境错误
- AI智能分组相似错误
- AI根因分析提供详细诊断
- AI修复建议针对具体业务场景
- 提供用户影响分析
## 📝 预期测试流程
### 1. 错误捕获测试
1. 配置Sentry SDK
2. 触发测试用例中的错误
3. 在Sentry Dashboard中查看错误
4. 验证错误是否被正确捕获
### 2. AI错误分组测试
1. 触发多个相似错误
2. 查看Sentry Dashboard中的错误分组
3. 评估AI分组准确性
4. 验证分组是否减少噪音
### 3. AI根因分析测试
1. 打开错误详情页面
2. 查看AI根因分析
3. 评估分析准确性
4. 验证是否提供足够的诊断信息
### 4. AI修复建议测试
1. 查看AI生成的修复建议
2. 评估建议的可行性
3. 应用修复建议
4. 验证修复效果
### 5. 性能监控测试
1. 配置性能监控
2. 触发性能问题
3. 查看性能数据
4. 评估AI性能分析
## 📊 预期评估指标
### 效率指标
| 指标 | 预期值 | 说明 |
|-----|--------|------|
| 错误捕获时间 | <1秒 | 从错误发生到Sentry接收的时间 |
| AI分析响应时间 | <5秒 | AI生成分析结果的时间 |
| 错误分组准确率 | >90% | AI正确分组相似错误的比例 |
| 根因分析准确率 | 待测试 | AI正确识别根因的比例 |
### 质量指标
| 指标 | 预期值 | 说明 |
|-----|--------|------|
| Bug定位准确率 | 待测试 | 准确识别bug的比例 |
| 修复建议有效率 | 待测试 | 修复建议可行的比例 |
| 上下文完整性 | >95% | 错误上下文信息的完整度 |
| 用户影响分析准确率 | 待测试 | 准确评估用户影响的比例 |
### 综合评分
| 类别 | 预期评分 | 权重 | 加权分 |
|-----|---------|------|--------|
| 效率指标 | 待测试 | 0.3 | 待测试 |
| 质量指标 | 待测试 | 0.7 | 待测试 |
| **综合评分** | **待测试** | - | **待测试** |
## ✅ 预期优缺点分析
### 预期优点
1. ✅ **生产环境监控**:实时捕获生产环境错误
2. ✅ **智能错误分组**:自动分组相似错误,减少噪音
3. ✅ **上下文丰富**:提供完整的错误堆栈、用户上下文、环境信息
4. ✅ **AI根因分析**:智能分析错误根因
5. ✅ **修复建议**:提供具体的修复建议
6. ✅ **性能监控**:监控应用性能,识别瓶颈
### 预期缺点
1. ❌ **需要付费**AI功能需要Team版或更高$26/月起)
2. ❌ **主要面向生产环境**:对开发阶段调试支持有限
3. ❌ **配置复杂**需要集成SDK配置相对复杂
4. ❌ **依赖网络**需要将错误数据发送到Sentry服务器
5. ❌ **数据隐私**错误数据存储在Sentry服务器
## 🎯 预期适用场景
- ✅ **适合**
- 生产环境错误监控和告警
- 实时错误分析和诊断
- 错误趋势分析和预测
- 性能问题诊断
- 发布后问题追踪
- 团队协作和问题分配
- ❌ **不适合**
- 开发阶段本地调试
- 需要实时调试器的场景
- 完全离线的开发环境
- 对数据隐私要求极高的场景
## 📸 测试截图(待补充)
### Sentry Dashboard
[待测试后补充Sentry Dashboard截图]
### AI错误分析
[待测试后补充AI错误分析截图]
### 错误详情页面
[待测试后补充错误详情页面截图]
### AI修复建议
[待测试后补充AI修复建议截图]
## 📁 相关文件
- [Sentry AI概览](../overview.md)
- [Sentry AI安装配置指南](../setup-guide.md)
- [测试标准](../../../test-standards/test-tasks/task4-debugging.md)
---
**提示**此测试结果文件为模板需要实际测试Sentry AI后才能填写完整内容。测试时请参考[测试标准](../../../test-standards/test-flow.md)和[质量指标](../../../test-standards/metrics/quality-metrics.md)。