名称: sentry 描述: “获取和分析Sentry问题、事件、交易和日志。帮助代理调试错误、找到根本原因,并了解特定时间发生的情况。”
Sentry 技能
通过API访问Sentry数据以进行调试和调查。使用来自~/.sentryclirc的认证令牌。
快速参考
| 任务 | 命令 |
|---|---|
| 在某个日期查找错误 | search-events.js --org X --start 2025-12-23T15:00:00 --level error |
| 列出未解决的问题 | list-issues.js --org X --status unresolved |
| 获取问题详情 | fetch-issue.js <issue-id-or-url> --latest |
| 获取事件详情 | fetch-event.js <event-id> --org X --project Y |
| 搜索日志 | search-logs.js --org X --project Y "level:error" |
常见调试工作流
“在这个时间出了什么问题?”
查找特定时间戳附近的事件:
# 查找2小时窗口内的所有事件
./scripts/search-events.js --org myorg --project backend \
--start 2025-12-23T15:00:00 --end 2025-12-23T17:00:00
# 仅过滤错误
./scripts/search-events.js --org myorg --start 2025-12-23T15:00:00 \
--level error
# 查找特定交易类型
./scripts/search-events.js --org myorg --start 2025-12-23T15:00:00 \
--transaction process-incoming-email
“最近发生了哪些错误?”
# 列出过去24小时内的未解决错误
./scripts/list-issues.js --org myorg --status unresolved --level error --period 24h
# 查找高频问题
./scripts/list-issues.js --org myorg --query "times_seen:>50" --sort freq
# 影响用户的问题
./scripts/list-issues.js --org myorg --query "is:unresolved has:user" --sort user
“获取特定问题/事件的详情”
# 获取带有最新堆栈跟踪的问题
./scripts/fetch-issue.js 5765604106 --latest
./scripts/fetch-issue.js https://sentry.io/organizations/myorg/issues/123/ --latest
./scripts/fetch-issue.js MYPROJ-123 --org myorg --latest
# 获取特定事件及其所有面包屑
./scripts/fetch-event.js abc123def456 --org myorg --project backend --breadcrumbs
“查找带有特定标签的事件”
# 通过自定义标签查找(例如,thread_id, user_id)
./scripts/search-events.js --org myorg --tag thread_id:th_abc123
# 通过用户邮箱查找
./scripts/search-events.js --org myorg --query "user.email:*@example.com"
获取问题
./scripts/fetch-issue.js <issue-id-or-url> [选项]
获取特定问题(分组错误)的详情。
接受:
- 问题ID:
5765604106 - 问题URL:
https://sentry.io/organizations/sentry/issues/5765604106/ - 新URL格式:
https://myorg.sentry.io/issues/5765604106/ - 短ID:
JAVASCRIPT-ABC(需要--org标志)
选项:
--latest- 包含最新事件及完整堆栈跟踪--org <org>- 组织标识(用于短ID)--json- 输出原始JSON
输出包括:
- 标题、罪魁祸首、状态、级别
- 首次/最后出现时间戳
- 事件计数和用户影响
- 标签和环境信息
- 使用
--latest时:堆栈跟踪、请求详情、面包屑、运行时上下文
获取事件
./scripts/fetch-event.js <event-id> --org <org> --project <project> [选项]
通过ID获取特定事件的完整详情。
选项:
--org, -o <org>- 组织标识(必需)--project, -p <project>- 项目标识(必需)--breadcrumbs, -b- 显示所有面包屑(默认:最后30个)--spans- 显示交易的跨度树--json- 输出原始JSON
输出包括:
- 时间戳、项目、标题、消息
- 所有标签
- 上下文(运行时、浏览器、操作系统、跟踪信息)
- 请求详情
- 异常及堆栈跟踪
- 面包屑
- 跨度(使用
--spans时)
搜索事件
./scripts/search-events.js [选项]
使用Sentry Discover搜索事件(交易、错误)。
时间范围选项:
--period, -t <period>- 相对时间(24h, 7d, 14d)--start <datetime>- 开始时间(ISO 8601: 2025-12-23T15:00:00)--end <datetime>- 结束时间(ISO 8601)
过滤选项:
--org, -o <org>- 组织标识(必需)--project, -p <project>- 项目标识或ID--query, -q <query>- Discover搜索查询--transaction <name>- 交易名称过滤器--tag <key:value>- 标签过滤器(可重复)--level <level>- 级别过滤器(error, warning, info)--limit, -n <n>- 最大结果数(默认:25,最大:100)--fields <fields>- 要包含的字段,以逗号分隔
查询语法:
transaction:process-* 通配符交易匹配
level:error 按级别过滤
user.email:foo@bar.com 按用户过滤
environment:production 按环境过滤
has:stack.filename 有堆栈跟踪
列出问题
./scripts/list-issues.js [选项]
列出和搜索项目中的问题(分组错误)。
选项:
--org, -o <org>- 组织标识(必需)--project, -p <project>- 项目标识(可重复)--query, -q <query>- 问题搜索查询--status <status>- unresolved, resolved, ignored--level <level>- error, warning, info, fatal--period, -t <period>- 时间周期(默认:14d)--limit, -n <n>- 最大结果数(默认:25)--sort <sort>- date, new, priority, freq, user--json- 输出原始JSON
查询语法:
is:unresolved 状态过滤器
is:assigned 有分配者
assigned:me 分配给当前用户
level:error 级别过滤器
firstSeen:+7d 首次出现 > 7天前
lastSeen:-24h 最后出现24小时内
times_seen:>100 事件计数过滤器
has:user 有用户上下文
error.handled:0 仅未处理错误
搜索日志
./scripts/search-logs.js [查询|url] [选项]
在Sentry的日志资源管理器中搜索日志。
选项:
--org, -o <org>- 组织标识(除非提供URL,否则必需)--project, -p <project>- 按项目标识或ID过滤--period, -t <period>- 时间周期(默认:24h)--limit, -n <n>- 最大结果数(默认:100,最大:1000)--json- 输出原始JSON
查询语法:
level:error 按级别过滤(trace, debug, info, warn, error, fatal)
message:*timeout* 搜索消息文本,使用通配符
trace:abc123 按跟踪ID过滤
project:my-project 按项目标识过滤
接受Sentry URL:
./scripts/search-logs.js "https://myorg.sentry.io/explore/logs/?project=123&statsPeriod=7d"
调试技巧
-
从宽泛开始,然后细化:先使用
search-events.js和时间范围,然后深入具体事件 -
使用面包屑:
fetch-event.js的--breadcrumbs标志显示错误发生前的完整历史记录 -
寻找模式:使用
list-issues.js --sort freq查找频繁发生的问题 -
检查相关事件:如果找到一个事件,查找具有相同交易名称或跟踪ID的其他事件
-
标签是你的朋友:自定义标签如
thread_id、user_id、request_id帮助关联事件