Quota Management
Monitor and manage usage limits for your observability apps.
Understanding Quotas
Quotas limit monthly usage:
- Prevents unexpected costs
- Controls data volume
- Alerts on high usage
RUM Quotas
Sessions
Unique browser sessions (30-minute timeout).
What counts:
- New browser session
- Returning after 30min inactivity
- Different device/browser
What doesn't count:
- Page reloads within session
- SPA navigation
- Tab switches
Events
Total events captured:
- Page loads
- Core Web Vitals
- Errors
- Clicks (if enabled)
- Console logs (if enabled)
- Network requests (if enabled)
Reduce usage:
rum.configure({
trackInteractions: false, // Disable clicks
trackConsole: false, // Disable console
trackNetwork: false // Disable network
});
Replay Storage
Compressed session replay data (GB).
Average sizes:
- Simple page: 50-100KB
- E-commerce: 200-500KB
- Rich SPA: 500KB-2MB
Reduce usage:
rum.configure({
sessionReplay: {
sampleRate: 0.1, // Record 10%
blockSelector: '.heavy-element'
}
});
OTLP Quotas
Spans
Number of trace spans.
What counts:
- Each span in trace
- Database queries
- HTTP requests
- Custom operations
Reduce usage:
// Sample traces
const sampler = new TraceIdRatioBasedSampler(0.1);
// Filter spans
if (span.name === 'healthcheck') return false;
Logs
Storage for structured logs (GB).
Reduce usage:
- Log only errors/warnings in production
- Sample high-frequency logs
- Filter noisy log sources
Metrics
Unlimited metric data points (retention limits apply).
Retention:
- Raw: 7 days
- 5min aggregation: 30 days
- 1hour aggregation: 90 days
- 1day aggregation: 1 year
Monitoring Usage
Dashboard View
Observability β Apps β [Your App] β Usage
Shows:
- Current month consumption
- Percentage of quota used
- Projected end-of-month usage
- Historical trends
Usage Alerts
Configure alerts: App Settings β Quotas β Alerts
Trigger at:
- 50% quota used
- 80% quota used (warning)
- 100% quota exceeded (critical)
Notification channels:
- Slack
- Telegram
- Webhooks
Quota Exceeded
When quota limit reached:
Default Behavior
New data rejected with 429 status:
{
"error": "Quota exceeded",
"quota_type": "rum_sessions",
"limit": 10000,
"used": 10000,
"reset_at": "2024-02-01T00:00:00Z"
}
Use Top-Up Balance
If top-up balance available:
- Auto-deduct from balance
- Continue accepting data
- Alert on low balance
See: Top-Ups
Adjusting Quotas
Upgrade Plan
Higher-tier plans include more quota:
| Plan | Sessions | Events | Spans | Logs |
|---|---|---|---|---|
| Free | 1,000 | 10,000 | 10,000 | 100MB |
| Pro | 10,000 | 100,000 | 100,000 | 1GB |
| Business | 50,000 | 500,000 | 500,000 | 10GB |
| Enterprise | Custom | Custom | Custom | Custom |
Custom Quotas
Enterprise plans support custom quotas per app.
Contact: [email protected]
Best Practices
β DO:
- Set up 80% usage alerts
- Monitor usage trends weekly
- Sample high-traffic events
- Use appropriate retention periods
β DON'T:
- Wait until quota exceeded
- Log everything in production
- Ignore usage patterns
- Set quotas too low for traffic
API Access
Query usage programmatically:
curl -H "Authorization: Bearer $API_KEY" \
https://statusradar.dev/api/observability/apps/{app_id}/usage
Response:
{
"period": "2024-01",
"quotas": {
"rum_sessions": { "limit": 10000, "used": 7523, "remaining": 2477 },
"rum_events": { "limit": 100000, "used": 45201, "remaining": 54799 }
},
"overage_handling": "reject",
"top_up_balance": { "sessions": 5000, "events": 10000 }
}
Next Steps
- Top-Ups - Purchase additional quota
- Creating Apps - Configure quotas
- RUM Troubleshooting - Reduce RUM usage
- OTLP Troubleshooting - Optimize OTLP