sentry

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Sentry (Read-only Observability)

Sentry(只读可观测性)

Quick start

快速开始

  • If not already authenticated, ask the user to provide a valid
    SENTRY_AUTH_TOKEN
    (read-only scopes such as
    project:read
    ,
    event:read
    ) or to log in and create one before running commands.
  • Set
    SENTRY_AUTH_TOKEN
    as an env var.
  • Optional defaults:
    SENTRY_ORG
    ,
    SENTRY_PROJECT
    ,
    SENTRY_BASE_URL
    .
  • Defaults: org/project
    {your-org}
    /
    {your-project}
    , time range
    24h
    , environment
    prod
    , limit 20 (max 50).
  • Always call the Sentry API (no heuristics, no caching).
If the token is missing, give the user these steps:
  1. Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
  2. Create a token with read-only scopes such as
    project:read
    ,
    event:read
    , and
    org:read
    .
  3. Set
    SENTRY_AUTH_TOKEN
    as an environment variable in their system.
  4. Offer to guide them through setting the environment variable for their OS/shell if needed.
  • Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready.
  • 若尚未认证,请要求用户提供有效的
    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(不使用启发式方法,不缓存)。
如果令牌缺失,请向用户提供以下步骤:
  1. 创建Sentry认证令牌:https://sentry.io/settings/account/api/auth-tokens/
  2. 创建具备
    project:read
    event:read
    org:read
    等只读权限的令牌。
  3. 在系统中将
    SENTRY_AUTH_TOKEN
    设置为环境变量。
  4. 若需要,可提供指导帮助用户根据其操作系统/Shell设置环境变量。
  • 切勿要求用户在聊天中粘贴完整令牌。请让他们在本地设置并确认已准备就绪。

Core tasks (use bundled script)

核心任务(使用捆绑脚本)

Use
scripts/sentry_api.py
for deterministic API calls. It handles pagination and retries once on transient errors.
使用
scripts/sentry_api.py
执行确定性API调用。它会处理分页,并在出现瞬时错误时重试一次。

Skill path (set once)

技能路径(一次性设置)

bash
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export SENTRY_API="$CODEX_HOME/skills/sentry/scripts/sentry_api.py"
User-scoped skills install under
$CODEX_HOME/skills
(default:
~/.codex/skills
).
bash
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export SENTRY_API="$CODEX_HOME/skills/sentry/scripts/sentry_api.py"
用户范围的技能安装在
$CODEX_HOME/skills
目录下(默认:
~/.codex/skills
)。

1) List issues (ordered by most recent)

1) 列出问题(按最新排序)

bash
python3 "$SENTRY_API" \
  list-issues \
  --org {your-org} \
  --project {your-project} \
  --environment prod \
  --time-range 24h \
  --limit 20 \
  --query "is:unresolved"
bash
python3 "$SENTRY_API" \
  list-issues \
  --org {your-org} \
  --project {your-project} \
  --environment prod \
  --time-range 24h \
  --limit 20 \
  --query "is:unresolved"

2) Resolve an issue short ID to issue ID

2) 将问题短ID解析为问题ID

bash
python3 "$SENTRY_API" \
  list-issues \
  --org {your-org} \
  --project {your-project} \
  --query "ABC-123" \
  --limit 1
Use the returned
id
for issue detail or events.
bash
python3 "$SENTRY_API" \
  list-issues \
  --org {your-org} \
  --project {your-project} \
  --query "ABC-123" \
  --limit 1
使用返回的
id
获取问题详情或事件。

3) Issue detail

3) 问题详情

bash
python3 "$SENTRY_API" \
  issue-detail \
  1234567890
bash
python3 "$SENTRY_API" \
  issue-detail \
  1234567890

4) Issue events

4) 问题事件

bash
python3 "$SENTRY_API" \
  issue-events \
  1234567890 \
  --limit 20
bash
python3 "$SENTRY_API" \
  issue-events \
  1234567890 \
  --limit 20

5) Event detail (no stack traces by default)

5) 事件详情(默认不包含堆栈跟踪)

bash
python3 "$SENTRY_API" \
  event-detail \
  --org {your-org} \
  --project {your-project} \
  abcdef1234567890
bash
python3 "$SENTRY_API" \
  event-detail \
  --org {your-org} \
  --project {your-project} \
  abcdef1234567890

API requirements

API要求

Always use these endpoints (GET only):
  • List issues:
    /api/0/projects/{org_slug}/{project_slug}/issues/
  • Issue detail:
    /api/0/issues/{issue_id}/
  • Events for issue:
    /api/0/issues/{issue_id}/events/
  • Event detail:
    /api/0/projects/{org_slug}/{project_slug}/events/{event_id}/
始终使用以下端点(仅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}/

Inputs and defaults

输入与默认值

  • org_slug
    ,
    project_slug
    : default to
    {your-org}
    /
    {your-project}
    (avoid non-prod orgs).
  • time_range
    : default
    24h
    (pass as
    statsPeriod
    ).
  • environment
    : default
    prod
    .
  • limit
    : default 20, max 50 (paginate until limit reached).
  • search_query
    : optional
    query
    parameter.
  • issue_short_id
    : resolve via list-issues query first.
  • org_slug
    project_slug
    :默认为
    {your-org}
    /
    {your-project}
    (避免使用非生产环境组织)。
  • time_range
    :默认
    24h
    (以
    statsPeriod
    参数传递)。
  • environment
    :默认
    prod
  • limit
    :默认20,最大50(分页直到达到限制数量)。
  • search_query
    :可选的
    query
    参数。
  • issue_short_id
    :先通过list-issues查询解析。

Output formatting rules

输出格式规则

  • Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent.
  • Event detail: include culprit, timestamp, environment, release, url.
  • If no results, state explicitly.
  • Redact PII in output (emails, IPs). Do not print raw stack traces.
  • Never echo auth tokens.
  • 问题列表:显示标题、short_id、状态、首次出现时间、最后出现时间、次数、环境、顶级标签;按最新排序。
  • 事件详情:包含故障源、时间戳、环境、版本、URL。
  • 若无结果,需明确说明。
  • 输出中需编辑掉个人可识别信息(PII),如邮箱、IP地址。不要打印原始堆栈跟踪。
  • 切勿回显认证令牌。

Golden test inputs

测试用例

  • Org:
    {your-org}
  • Project:
    {your-project}
  • Issue short ID:
    {ABC-123}
Example prompt: “List the top 10 open issues for prod in the last 24h.” Expected: ordered list with titles, short IDs, counts, last seen.
  • 组织:
    {your-org}
  • 项目:
    {your-project}
  • 问题短ID:
    {ABC-123}
示例提示:“列出过去24小时内生产环境中排名前10的未解决问题。” 预期结果:按最新排序的列表,包含标题、短ID、次数、最后出现时间。