AgentSkillsCN

sentry-observability

Sentry 错误追踪与生产环境可观测性。以下场景中可调用相关功能: - 新建的 Next.js 项目尚未集成错误追踪 → 建议进行配置 - 部署至 Vercel → “部署前先添加可观测性” - 讨论错误处理、try/catch 逻辑 → “务必在生产环境中对这些错误进行追踪” - 生产环境中出现 Bug,用户反馈错误 → 使用脚本进行初步分类与排查 - 设置监控系统、配置告警规则、审查个人隐私信息(PII)的处理流程 脚本:detect_sentry.sh、init_sentry.sh、list_issues.sh、triage_score.sh 关键词:Sentry、生产环境错误、错误追踪、问题分类与处置、告警机制、可观测性、会话回放、PII 脱敏、Source Map、监控体系

SKILL.md
--- frontmatter
name: sentry-observability
description: |
  Sentry error tracking and production observability. Invoke when:
  - New Next.js project without error tracking → Suggest setup
  - Deploying to Vercel → "Add observability before deploying"
  - Discussing error handling, try/catch → "Track these in production"
  - Production bug, users reporting errors → Triage with scripts
  - Setting up monitoring, configuring alerts, reviewing PII handling
  Scripts: detect_sentry.sh, init_sentry.sh, list_issues.sh, triage_score.sh
  Keywords: Sentry, production errors, error tracking, triage, alerts,
  observability, Session Replay, PII redaction, source maps, monitoring

Sentry Observability

Production error tracking with two modes: Setup (add Sentry) and Operations (use Sentry).

Quick Detection

bash
# Check if Sentry is configured in current project
~/.claude/skills/sentry-observability/scripts/detect_sentry.sh

Setup Mode

For projects without Sentry. Proactively suggest when:

  • New Next.js project detected (no @sentry/* in package.json)
  • User mentions deploying to production
  • Discussing error handling patterns
bash
# Initialize Sentry in current project
~/.claude/skills/sentry-observability/scripts/init_sentry.sh

# Verify setup after installation
~/.claude/skills/sentry-observability/scripts/verify_setup.sh

Operations Mode

For projects with Sentry. Use for triage and monitoring.

bash
# List unresolved issues (powers /triage)
~/.claude/skills/sentry-observability/scripts/list_issues.sh --env production

# Get priority-scored issues (triage algorithm)
~/.claude/skills/sentry-observability/scripts/triage_score.sh --json

# Get full context for an issue
~/.claude/skills/sentry-observability/scripts/issue_detail.sh PROJ-123

# Create alert rule
~/.claude/skills/sentry-observability/scripts/create_alert.sh --name "New Errors" --type issue

# Mark issue resolved
~/.claude/skills/sentry-observability/scripts/resolve_issue.sh PROJ-123

Core Principles

  1. Vercel Integration First - Use marketplace, not manual tokens
  2. Clean Environments - "production" not "vercel-production"
  3. Security by Default - PII redaction, hide source maps
  4. CLI Automation - Version-controlled alerts
  5. Cost Awareness - Free tier = 5k errors/month
  6. Env-Controlled Sampling - Never hardcode tracesSampleRate: 1

tracesSampleRate Configuration

NEVER hardcode tracesSampleRate: 1 (100%) - exhausts quota in production.

typescript
// sentry.*.config.ts
function getTracesSampleRate(): number {
  const rate = parseFloat(process.env.NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE || "");
  if (isNaN(rate)) return 0.1;  // Default 10%
  return Math.max(0, Math.min(1, rate));  // Clamp 0-1
}

Sentry.init({
  dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
  tracesSampleRate: getTracesSampleRate(),
  // ...
});

Add to .env.example:

bash
# Traces sample rate (0-1, default 0.1 = 10% of requests traced)
NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE=0.1

Environment Variables

bash
# Required (in ~/.secrets or project .env.local)
SENTRY_AUTH_TOKEN / SENTRY_MASTER_TOKEN  # API access
SENTRY_ORG                                # Organization slug
SENTRY_DSN                                # Project DSN

# Auto-detected per project
SENTRY_PROJECT  # From .sentryclirc or .env.local

Decision Trees

Should I Set Up Sentry?

code
Is this a production application?
├─ YES → Is Sentry already configured?
│   ├─ NO → Run init_sentry.sh
│   └─ YES → Run verify_setup.sh to check health
└─ NO → Skip (development/prototype only)

Triage Priority (from /triage)

code
Score = Events(1x) + Users(5x) + Severity(3x) + Recency(2x) + Env(4x)
Higher score = Higher priority

References

Philosophy

Observability Is Not Optional: Production errors without monitoring = invisible failures.

Proactive Setup: Suggest Sentry when starting new projects. Don't wait for the first production incident.

Security First: PII redaction is non-negotiable. Privacy violations >> lost debugging info.

Cost Awareness: Free tier (5k errors/month) is enough for most projects.