✨ Major Features Added: - Complete magical theming and rebranding from LifeRPG to The Wizard's Grimoire - Production-grade React frontend with Tailwind CSS v4 and magical aesthetics - Comprehensive analytics dashboard with Recharts integration (ScryingPortal) - Push notifications system with PWA service worker support - Drag & drop functionality using @dnd-kit for habit reordering - Social features with friends system and leaderboards - Performance optimization tools and monitoring - Mobile app enhancement with PWA installation support 🏗️ Technical Infrastructure: - Advanced service worker with offline support and background sync - Zustand state management for scalable application state - Production-ready UI component system with enhanced Button, Card, Input - Progressive Web App (PWA) with manifest and app installation - FastAPI backend with comprehensive API endpoints - Docker containerization and CI/CD pipeline setup 📱 Progressive Web App Features: - Offline functionality with intelligent caching - Push notification support for habit reminders - App installation on mobile and desktop platforms - Background sync for offline data management - Performance monitoring and optimization tools 🎨 User Experience: - Magical wizard/grimoire theming throughout application - Responsive design optimized for all device sizes - Drag & drop habit management with smooth animations - Interactive analytics with multiple chart types - Social connectivity with friends and competitive features - Comprehensive notification and performance settings 🔧 Developer Experience: - Modern development stack with Vite and React - Comprehensive testing setup and CI/CD pipelines - Code quality tools with pre-commit hooks - Docker development environment - Detailed documentation and implementation guides This represents a complete transformation from prototype to production-ready application with enterprise-grade features and magical user experience.
50 lines
1.7 KiB
YAML
50 lines
1.7 KiB
YAML
groups:
|
|
- name: liferpg.rules
|
|
interval: 1m
|
|
rules:
|
|
- alert: HighEnqueueSkips
|
|
expr: sum(rate(sync_enqueue_skips_total[5m])) > 0.2
|
|
for: 10m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: High rate of sync enqueue skips
|
|
description: Enqueue skips ({{ $value }}) may indicate provider caps or guard contention.
|
|
|
|
- alert: ProviderAtConcurrencyCap
|
|
expr: max_over_time(sync_inflight[15m]) >= on(provider) (sync_provider_cap)
|
|
for: 10m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: Provider at concurrency cap
|
|
description: In-flight syncs have been at the configured cap for 10m.
|
|
|
|
- alert: QueueDepthGrowing
|
|
expr: increase(sync_queue_depth[15m]) > 50
|
|
for: 10m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: Queue depth increasing
|
|
description: Sync queue depth increased by >50 over 15m. Investigate worker capacity or provider health.
|
|
|
|
- alert: RQQueueBacklog
|
|
expr: max_over_time(rq_queue_length[10m]) > 100
|
|
for: 10m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: RQ queue backlog
|
|
description: RQ queue length has exceeded 100 for 10 minutes.
|
|
|
|
- alert: SlowSyncsP95
|
|
expr: |
|
|
histogram_quantile(0.95, sum by (le, provider) (rate(sync_job_duration_seconds_bucket[5m]))) > 30
|
|
for: 10m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: Slow syncs p95 over 30s
|
|
description: The 95th percentile of sync job durations is above 30 seconds for 10 minutes.
|