55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# ADR-0026: Error Reporting Service
|
|
|
|
## Status
|
|
Accepted
|
|
|
|
## Context
|
|
The platform needs error reporting for:
|
|
- Production error tracking
|
|
- Stack trace collection
|
|
- Error aggregation and analysis
|
|
- Integration with monitoring
|
|
|
|
Options considered:
|
|
1. **Sentry** - Popular, feature-rich
|
|
2. **Rollbar** - Alternative error tracking
|
|
3. **Custom solution** - Build our own
|
|
4. **Logs only** - No external service
|
|
|
|
## Decision
|
|
Use **Sentry** for error reporting (optional, configurable):
|
|
|
|
1. **Integration**: Via error bus sink
|
|
2. **Configuration**: Sentry DSN from config
|
|
3. **Context**: Include user ID, trace ID, module name
|
|
4. **Optional**: Can be disabled for development
|
|
|
|
**Rationale:**
|
|
- Industry standard error tracking
|
|
- Excellent Go SDK
|
|
- Rich features (release tracking, grouping, etc.)
|
|
- Good free tier
|
|
- Easy to integrate
|
|
|
|
## Consequences
|
|
|
|
### Positive
|
|
- Excellent error tracking
|
|
- Rich context and grouping
|
|
- Easy integration
|
|
- Good free tier
|
|
|
|
### Negative
|
|
- External dependency
|
|
- Additional cost at scale
|
|
- Privacy considerations (data sent to Sentry)
|
|
|
|
### Implementation Notes
|
|
- Install: `github.com/getsentry/sentry-go`
|
|
- Create Sentry sink for error bus
|
|
- Configure via environment variable
|
|
- Include context: user ID, trace ID, module name
|
|
- Set up release tracking
|
|
- Configure sampling for high-volume deployments
|
|
|