关于 sentry
sentry 是一项 Agent 技能,通过 Sentry API 只读查询问题和事件。它使用随附脚本执行请求,并提供结果筛选和敏感信息保护规则。
主要功能
- 01列出并搜索问题
- 02获取问题和事件详情
- 03仅使用只读 API 请求
- 04在输出中隐去个人信息
适用场景
- 01查看近期未解决的生产问题
- 02检查特定问题的事件
- 03查看事件详情且不输出堆栈跟踪
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tech-leads-club/ agent-skills --skill sentry安装后在 Claude Code 中输入/sentry确认已加载。
附带文件LICENSE.txtscripts/sentry_api.py
详细介绍
Sentry(只读可观测性)
快速开始
- 如果尚未完成身份验证,请让用户提供有效的
SENTRY_AUTH_TOKEN(只读权限范围,例如project:read、event:read),或者先登录并创建令牌,再运行命令。 - 将
SENTRY_AUTH_TOKEN设置为环境变量。 - 可选默认值:
SENTRY_ORG、SENTRY_PROJECT、SENTRY_BASE_URL。 - 默认值:组织/项目为
{your-org}/{your-project},时间范围为24h,环境为prod,数量上限为 20(最多 50)。 - 始终调用 Sentry API(不使用启发式方法,也不缓存)。
如果缺少令牌,请向用户提供以下步骤:
- 创建 Sentry 身份验证令牌:https://sentry.io/settings/account/api/auth-tokens/
- 创建只读权限范围的令牌,例如
project:read、event:read和org:read。 - 在其系统中将
SENTRY_AUTH_TOKEN设置为环境变量。 - 如有需要,主动帮助他们了解如何在其操作系统/命令行中设置环境变量。
- 绝不要让用户在聊天中粘贴完整令牌。让他们在本地设置令牌,并在准备好后确认。
核心任务(使用捆绑脚本)
使用 scripts/sentry_api.py 执行确定性的 API 调用。该脚本会处理分页,并在遇到暂时性错误时重试一次。
技能路径(设置一次)
export AGENT_SKILLS_HOME="${AGENT_SKILLS_HOME:-$HOME/.agent-skills}"
export SENTRY_API="$AGENT_SKILLS_HOME/skills/sentry/scripts/sentry_api.py"
用户级技能安装在 $AGENT_SKILLS_HOME/skills 下(默认:~/.agent-skills/skills)。
1)列出问题(按最近时间排序)
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--environment prod \
--time-range 24h \
--limit 20 \
--query "is:unresolved"
2)将问题短 ID 解析为问题 ID
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--query "ABC-123" \
--limit 1
使用返回的 id 获取问题详情或事件。
3)问题详情
python3 "$SENTRY_API" \
issue-detail \
1234567890
4)问题事件
python3 "$SENTRY_API" \
issue-events \
1234567890 \
--limit 20
5)事件详情(默认不包含堆栈跟踪)
python3 "$SENTRY_API" \
event-detail \
--org {your-org} \
--project {your-project} \
abcdef1234567890
API 要求
始终使用以下端点(仅限 GET):
- 列出问题:
/api/0/projects/{org_slug}/{project_slug}/issues/ - 问题详情:
/api/0/issues/{issue_id}/ - 问题的事件:
/api/0/issues/{issue_id}/events/ - 事件详情:
/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/
输入和默认值
org_slug、project_slug:默认使用{your-org}/{your-project}(避免使用非生产组织)。time_range:默认为24h(作为statsPeriod传入)。environment:默认为prod。limit:默认为 20,最多 50(分页获取,直到达到数量上限)。search_query:可选的query参数。issue_short_id:先通过列出问题的查询进行解析。
输出格式规则
- 问题列表:显示标题、short_id、状态、first_seen、last_seen、count、环境和 top_tags;按最近时间排序。
- 事件详情:包含 culprit、timestamp、environment、release 和 url。
- 如果没有结果,请明确说明。
- 在输出中隐藏个人身份信息(PII),例如电子邮件和 IP 地址。不要输出原始堆栈跟踪。
- 绝不要回显身份验证令牌。
黄金测试输入
- 组织:
{your-org} - 项目:
{your-project} - 问题短 ID:
{ABC-123}
提示词示例:“列出过去 24h 内 prod 环境中排名前 10 的未解决问题。” 预期结果:按顺序列出标题、短 ID、数量和最近出现时间。
评论
支持 Markdown