home / skills / phrazzld / claude-config / sentry-observability

sentry-observability skill

/skills/sentry-observability

This skill helps you proactively set up and operate Sentry observability for production apps, improving error tracking, triage, and alerts.

npx playbooks add skill phrazzld/claude-config --skill sentry-observability

Review the files below or copy the command above to add this skill to your agents.

Files (21)
SKILL.md
4.5 KB
---
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
effort: high
---

# 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?
```
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)
```
Score = Events(1x) + Users(5x) + Severity(3x) + Recency(2x) + Env(4x)
Higher score = Higher priority
```

## References

- [Setup Guide](references/setup-guide.md) - Full setup walkthrough
- [Configuration](references/configuration.md) - Advanced config patterns
- [PII Redaction](references/pii-redaction.md) - Security patterns
- [Session Replay](references/session-replay.md) - Visual debugging
- [Troubleshooting](references/troubleshooting.md) - Common issues
- [Anti-Patterns](references/anti-patterns.md) - What NOT to do

## 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.

Overview

This skill provides Sentry-focused production observability guidance and automation for web projects. It detects whether Sentry is installed, suggests onboarding for new Next.js or Vercel deployments, and offers operational scripts and triage workflows for live production errors. It focuses on secure defaults, PII redaction, and cost-aware sampling.

How this skill works

The skill inspects the project for Sentry configuration and relevant dependencies, then recommends setup or operations mode. It exposes small CLI helpers to detect Sentry, initialize configuration, verify installation, list and score issues, and run triage or resolution commands. It applies decision trees for whether to set up Sentry and a priority scoring formula to rank issues for remediation.

When to use it

  • Starting a new Next.js project with no error tracking configured
  • Preparing to deploy to Vercel — add observability before release
  • Discussing error handling patterns or try/catch usage that should be tracked in production
  • Investigating production bugs or user-reported errors that need triage
  • Configuring alerts, session replay, source maps, or reviewing PII handling

Best practices

  • Prefer Vercel marketplace integration over manual tokens for CI/CD simplicity
  • Keep environments clean and use a canonical production name (e.g., production)
  • Enforce PII redaction and avoid uploading raw sensitive data or open source maps unintentionally
  • Never hardcode tracesSampleRate to 1; use env-controlled sampling and clamp values 0–1
  • Version-control alert rules and use CLI automation for repeatable operations
  • Monitor costs; use sensible sampling and free-tier limits as a guardrail

Example use cases

  • Run detect_sentry.sh to determine if Sentry is present in a repo and get quick next steps
  • Run init_sentry.sh to bootstrap Sentry in a new Next.js app, then verify_setup.sh to confirm health
  • During incidents, list_issues.sh --env production and triage_score.sh --json to prioritize fixes
  • Create or version control alert rules and resolve issues via resolve_issue.sh PROJ-123 as part of CI/CD workflows
  • Audit environment variables and ensure SENTRY_DSN, auth token, org and project are correctly provisioned

FAQ

How do I avoid tracing too many requests in production?

Do not set tracesSampleRate to 1. Read the rate from an environment variable, default to a low value such as 0.1, and clamp between 0 and 1 so sampling is controlled per environment.

What should I do before deploying to Vercel?

Integrate Sentry via the Vercel marketplace, confirm environment names are clean (production), set required SENTRY_* env vars, enable PII redaction, and verify source map upload settings.