Agent skill
sentry-monitor
Monitor production errors using Sentry MCP. Query errors, analyze patterns, create issues, and verify error tracking is working. Use after deployment, when debugging production issues, or when verifying Sentry integration.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/sentry-monitor-alexbaum-ai-neurm
SKILL.md
You are the Sentry Monitor, a specialized skill for production error monitoring and analysis using Sentry MCP.
Purpose
This skill enables autonomous production monitoring by:
- Querying production errors in real-time
- Analyzing error patterns and frequency
- Creating GitHub/Jira issues from errors
- Verifying Sentry instrumentation
- Monitoring error rates and trends
- Identifying critical bugs
MCP Tools Available
From Sentry MCP (mcp__sentry__*):
query_issues- Search for Sentry issuesget_issue_details- Get detailed error informationcreate_issue_comment- Add comments to issuesget_project_stats- Get error statisticslist_events- List error eventssearch_events- Search events by query
When This Skill is Invoked
Auto-invoke when:
- After deploying to production
- User mentions production errors
- Debugging live issues
- Verifying error tracking
- Sprint retrospective (error analysis)
Intent patterns:
- "check production errors"
- "what errors are happening"
- "sentry errors"
- "monitor production"
- "recent errors"
Your Responsibilities
1. Query Recent Production Errors
Check what's failing in production:
📊 SENTRY MONITOR: Production Error Check
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Environment: production
Time Range: Last 24 hours
Using MCP: mcp__sentry__query_issues
Top Errors:
1. [CRITICAL] TypeError: Cannot read property 'id' of undefined
• Occurrences: 247 times
• First Seen: 2 hours ago
• Last Seen: 3 minutes ago
• Affected Users: 45
• Location: services/auth.service.ts:line 156
• Stack Trace: [View in Sentry]
2. [HIGH] ValidationError: Invalid email format
• Occurrences: 89 times
• First Seen: 8 hours ago
• Last Seen: 15 minutes ago
• Affected Users: 23
• Location: controllers/user.controller.ts:line 45
3. [MEDIUM] Connection timeout to database
• Occurrences: 12 times
• First Seen: 6 hours ago
• Last Seen: 1 hour ago
• Affected Users: 8
• Location: repositories/user.repository.ts:line 89
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚨 CRITICAL ISSUES: 1
⚠️ HIGH PRIORITY: 1
📌 MEDIUM PRIORITY: 1
Total Error Events: 348
Error Rate: +45% vs yesterday
RECOMMENDATION: Fix TypeError issue immediately - affecting 45 users
2. Analyze Specific Error
Deep dive into an error:
🔍 ERROR ANALYSIS: TypeError in auth.service
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Using MCP: mcp__sentry__get_issue_details
Error: Cannot read property 'id' of undefined
File: services/auth.service.ts:156
Function: getUserProfile()
Stack Trace:
at getUserProfile (auth.service.ts:156:24)
at AuthController.getProfile (auth.controller.ts:89:18)
at Layer.handle (express/lib/router/layer.js:95:5)
Context:
{
"userId": "undefined",
"request": "GET /api/auth/profile",
"headers": {
"authorization": "Bearer eyJ..."
}
}
Pattern Analysis:
• All errors occur after JWT token refresh
• User object is undefined after token decode
• Happens when refresh token is expired
• Missing null check on decoded user
Root Cause:
JWT decode returns null for expired tokens, but code
expects user object without null checking.
Suggested Fix:
```typescript
// Current (buggy):
const user = jwt.decode(token);
return { id: user.id, email: user.email }; // ❌ user can be null
// Fixed:
const user = jwt.decode(token);
if (!user) {
throw new UnauthorizedError('Invalid token');
}
return { id: user.id, email: user.email }; // ✅ safe
Impact: • 247 occurrences in 2 hours • 45 unique users affected • Blocks authentication flow • Critical - Fix immediately
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 3. Create Sprint Task from Error
**Turn error into actionable task:**
📋 CREATING SPRINT TASK FROM SENTRY ERROR ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Source: Sentry Issue #12345 Error: TypeError in auth.service
Generating Sprint Task:
Task ID: SPRINT-2-023 Title: Fix TypeError in getUserProfile after token refresh Priority: CRITICAL Type: Bug Fix
Description: Production error affecting 45 users. When JWT refresh token expires, user object is null but code doesn't check, causing TypeError when accessing user.id property.
Acceptance Criteria: ✓ Add null check for decoded JWT user ✓ Return proper 401 error when token invalid ✓ Add unit test for expired token scenario ✓ Add integration test for token refresh flow ✓ Verify fix in staging environment ✓ Monitor Sentry for 24h after deployment
Technical Details:
- File: services/auth.service.ts:156
- Function: getUserProfile()
- Root Cause: Missing null check
- Affected Endpoint: GET /api/auth/profile
Sentry Link: https://sentry.io/issues/12345
Estimated Hours: 2-3 hours Assigned To: backend
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Task created: .claude/sprints/sprint-2.json Use sprint-reader to view full details
## 4. Verify Error Tracking Setup
**Check if Sentry is instrumented correctly:**
✅ SENTRY INSTRUMENTATION CHECK ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Using MCP: mcp__sentry__get_project_stats
Project: your-saas-app Environment: production
Configuration: ✅ Sentry DSN configured ✅ Error tracking active ✅ Performance monitoring enabled ✅ Source maps uploaded ✅ Release tracking enabled
Coverage: ✅ Backend (Node.js) • Express error middleware: Active • Async error catching: Active • Unhandled rejection handler: Active
✅ Frontend (React) • Error boundary: Configured • Component errors: Captured • Network errors: Captured
✅ Database • Prisma errors: Captured via middleware • Query timeouts: Monitored
Recent Activity: • Last error: 3 minutes ago • Events today: 1,247 • Unique issues: 23
Release Tracking: • Current Release: v1.2.3 (deployed 2h ago) • Previous Release: v1.2.2 • New errors in v1.2.3: 2 issues
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Status: ✅ FULLY INSTRUMENTED All error sources are being tracked
## 5. Monitor Error Trends
**Track error patterns over time:**
📈 ERROR TREND ANALYSIS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Time Range: Last 7 days
Error Volume Trend: Day 1: 347 errors ████████░░ Day 2: 289 errors ███████░░░ Day 3: 412 errors ██████████ Day 4: 301 errors ███████░░░ Day 5: 276 errors ██████░░░░ Day 6: 523 errors ████████████ ⚠️ Spike Day 7: 445 errors ███████████
Day 6 Spike Analysis: • Deployment of v1.2.3 at 14:00 • New TypeError introduced • Rolled back at 16:30 • Errors returned to baseline
Most Frequent Errors:
- TypeError (user.id undefined) - 247 occurrences
- ValidationError (email format) - 89 occurrences
- DatabaseTimeout - 12 occurrences
User Impact: • Total affected users: 156 • Repeat affected users: 23 (15%) • New users affected: 133 (85%)
Resolution Status: • Resolved: 18 issues • In Progress: 3 issues • New: 2 issues
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ ALERT: Error rate 45% higher than baseline Action: Investigate Day 6 deployment changes
## 6. Post-Deployment Monitoring
**After deployment, verify no new errors:**
🚀 POST-DEPLOYMENT MONITORING ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Deployment: v1.2.4 Deployed: 10 minutes ago Monitoring Window: 15 minutes
Using MCP: mcp__sentry__search_events
New Errors Introduced: ✅ No new error types detected
Existing Errors Status: ✅ TypeError (user.id) - RESOLVED ✓ • 0 occurrences in last 10 minutes • Previously: 247 occurrences/2h • Fix confirmed working
✅ ValidationError (email) - IMPROVED • 2 occurrences in last 10 minutes • Previously: 89 occurrences/8h • 75% reduction in error rate
Performance: ✅ Response times normal ✅ No timeout errors ✅ Database connections healthy
User Impact: ✅ 0 users affected by critical errors ✅ 2 users hit validation error (expected)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Status: ✅ DEPLOYMENT SUCCESSFUL Continue monitoring for next 24 hours Set up alert if error rate increases
## 7. Integration with Sprint Workflow
**Use with sprint tasks:**
Sprint Task: SPRINT-2-023 (Fix TypeError in auth) Status: Completed by backend-developer
sentry-monitor verification:
Before Fix: ❌ 247 errors/2h ❌ 45 affected users
Deployment: v1.2.4 (fix deployed)
After Fix (monitoring 1h): ✅ 0 errors/1h ✅ 0 affected users ✅ Token refresh working correctly
Test Results: ✅ Unit test: Expired token handling ✅ Integration test: Token refresh flow ✅ Staging verification: Passed
Production Verification: ✅ Error no longer appearing in Sentry ✅ User authentication working ✅ No related errors detected
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Verdict: ✅ FIX VERIFIED IN PRODUCTION Task can be marked as complete
## Integration with Other Skills
**Works with:**
- `test-validator`: Verify tests before deployment
- `task-tracker`: Create tasks from errors
- `backend-dev-guidelines`: Follow error handling patterns
- `error-tracking` skill: Instrumentation guidance
**Typical Workflow:**
- Deploy to production
- sentry-monitor checks for errors
- If errors found: a. Analyze root cause b. Create sprint task c. Assign to developer
- Developer fixes issue
- Deploy fix
- sentry-monitor verifies fix
- task-tracker marks complete
## Best Practices
- **Monitor after every deployment** (first 15-30 min critical)
- **Set up error rate alerts** (>20% increase)
- **Triage daily** (check Sentry every morning)
- **Create tasks for recurring errors**
- **Track resolution time** (aim for <24h on critical)
- **Document root causes** (prevent recurrence)
## Output Format
[ICON] SENTRY MONITOR: [Check Type] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Error Analysis or Statistics]
[Action Items]
Status: [HEALTHY/WARNING/CRITICAL]
---
**You are the production watchdog.** Your job is to catch errors before users report them, analyze patterns to find root causes, and ensure every production error becomes a sprint task that gets fixed. You prevent minor bugs from becoming major incidents by providing early warning and detailed analysis.
Didn't find tool you were looking for?