get to prod tasks
This commit is contained in:
69
tasks/web-production/10-error-tracking.md
Normal file
69
tasks/web-production/10-error-tracking.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# 10. Error Tracking & Alerting (Sentry Integration)
|
||||
|
||||
meta:
|
||||
id: web-production-10
|
||||
feature: web-production
|
||||
priority: P1
|
||||
depends_on: []
|
||||
tags: [observability, error-tracking, production]
|
||||
|
||||
objective:
|
||||
- Implement comprehensive error tracking with Sentry to catch and alert on production errors in real-time
|
||||
|
||||
deliverables:
|
||||
- Sentry integration for backend and frontend
|
||||
- Error alerting rules
|
||||
- Source maps upload for production builds
|
||||
- Breadcrumbs for error context
|
||||
|
||||
steps:
|
||||
1. Add Sentry SDK:
|
||||
- Install @sentry/node for backend
|
||||
- Install @sentry/solid or @sentry/browser for frontend
|
||||
- Configure DSN from environment variable
|
||||
2. Initialize Sentry in backend:
|
||||
- Add to web/src/entry-server.tsx or Nitro plugin
|
||||
- Capture unhandled exceptions
|
||||
- Capture unhandled promise rejections
|
||||
- Attach user context (ID, email) when available
|
||||
3. Initialize Sentry in frontend:
|
||||
- Add to web/src/entry-client.tsx
|
||||
- Capture JavaScript errors
|
||||
- Capture SolidJS component errors via ErrorBoundary
|
||||
- Attach release version and environment
|
||||
4. Configure error alerting:
|
||||
- Slack/Discord/PagerDuty integration for P1 errors
|
||||
- Email alerts for new error types
|
||||
- Digest emails for recurring errors
|
||||
- Alert thresholds: >10 errors/minute or >1 unhandled exception
|
||||
5. Upload source maps:
|
||||
- Configure Vite plugin for source map generation
|
||||
- Upload maps to Sentry during build
|
||||
- Verify error stack traces show original source
|
||||
6. Add breadcrumbs:
|
||||
- Log navigation changes
|
||||
- Log API calls with response status
|
||||
- Log user actions (clicks, form submissions)
|
||||
|
||||
tests:
|
||||
- Unit: Test Sentry capture in error scenarios
|
||||
- Integration: Trigger error, verify appears in Sentry
|
||||
- Alert: Verify alert fires within 1 minute of error
|
||||
|
||||
acceptance_criteria:
|
||||
- 100% of unhandled exceptions captured in Sentry
|
||||
- All errors include user context, request URL, and environment
|
||||
- Source maps working → stack traces show original TypeScript
|
||||
- Alert fired within 60 seconds of first occurrence
|
||||
- No duplicate alerts for same error (grouping working)
|
||||
- Error rate dashboard showing trends over time
|
||||
|
||||
validation:
|
||||
- Deploy with intentional bug → error appears in Sentry within 30s
|
||||
- Check alert channel → notification received
|
||||
- View error detail → correct file, line number, user context
|
||||
|
||||
notes:
|
||||
- Sentry free tier: 5k errors/month — may need paid plan for scale
|
||||
- Use Sentry releases to track which deploy introduced errors
|
||||
- Consider integrating with GitHub for suspect commits
|
||||
Reference in New Issue
Block a user