关于 openai-sentry
用于只读查询 Sentry 可观测性数据的技能,通过 Sentry API 获取项目问题和事件详情。它会整理问题与事件信息、隐藏个人信息,并避免输出原始堆栈跟踪。
主要功能
- 01列出并筛选问题
- 02获取问题和事件详情
- 03分页调用 API
- 04隐藏个人信息
- 05整理问题摘要
适用场景
- 01查看近期生产问题
- 02检查某个问题的事件
- 03查找符合查询条件的问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trailofbits/ skills-curated --skill openai-sentry安装后在 Claude Code 中输入/openai-sentry确认已加载。
附带文件scripts/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设置为环境变量。 - 如有需要,可提供指导,帮助用户为其操作系统/ shell 设置环境变量。
- 切勿要求用户在聊天中粘贴完整令牌。请让用户在本地设置令牌,并在准备就绪后告知。
核心任务(使用捆绑脚本)
使用 scripts/sentry_api.py 执行确定性的 API 调用。它会处理分页,并在出现暂时性错误时重试一次。
脚本和参考资料位于 {baseDir}/ 下。
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、environments、top_tags;按最近时间排序。
- 事件详情:包含 culprit、timestamp、environment、release、url。
- 如果没有结果,请明确说明。
- 对输出中的 PII(电子邮件、IP 地址)进行脱敏。不要输出原始堆栈跟踪。
- 切勿回显身份验证令牌。
黄金测试输入
- 组织:
{your-org} - 项目:
{your-project} - 问题短 ID:
{ABC-123}
示例提示词:“列出过去 24h 内 prod 环境中排名前 10 的未解决问题。” 预期:按顺序排列的列表,包含标题、短 ID、数量和最近发生时间。
适用场景
不适用场景
评论
支持 Markdown