Monitoring to wiedzenie co dzieje się w produkcji. Observability to rozumienie DLACZEGO. Dla MVP: crash reporting + basic analytics wystarczy.
Dlaczego Monitoring dla MVP
- Crashes: Dowiesz się o bugach zanim użytkownicy narzekają
- Performance: Które ekrany są wolne
- Errors: Które API calls failują
- Usage: Które features są używane
Bez monitoringu: budujesz w ciemno. Z monitoringiem: data-driven decisions.
Firebase Crashlytics
Co daje:
- Crash reports (stack traces)
- Non-fatal errors
- Custom logs
- User IDs (kto doświadczył crash)
- Breadcrumbs (co robił user przed crash)
Setup: 10 minut, darmowy, integracja z Firebase
Best practices:
- Log non-fatal errors (try-catch → Crashlytics)
- Add custom keys (user ID, screen name)
- Set user identifiers
- Log breadcrumbs (user actions)
Sentry
Alternatywa dla Crashlytics:
- Lepsze stack traces
- Source maps (Flutter web)
- Release tracking
- Performance monitoring
- Alerts (Slack, email)
Pricing: Darmowy do 5k events/month, potem $26/month
Kiedy używać: Jeśli Crashlytics nie wystarczy (web app, advanced features)
💡 Assadante Stack
Dla MVP: Firebase Crashlytics (darmowy, wystarczający). Sentry tylko jeśli potrzebujesz advanced features lub web support.
Firebase Performance Monitoring
Co mierzy:
- App startup time
- Screen rendering time
- Network requests (duration, success rate)
- Custom traces (np. "checkout flow")
Automatic traces:
- App start
- Screen rendering
- HTTP requests
Custom traces: Measure specific flows (login, checkout, search)
Logging Best Practices
Log levels:
- Debug: Development only
- Info: Important events (user logged in)
- Warning: Potential issues (slow API)
- Error: Errors (API failed)
- Fatal: Crashes
Czego NIE logować:
- Passwords, API keys
- Personal data (GDPR)
- Zbyt dużo (noise)
Alerts & Notifications
Setup alerts dla:
- Crash rate > 1%
- API error rate > 5%
- App startup time > 3s
- New error type (nie widziany wcześniej)
Channels: Slack, email, PagerDuty (dla on-call)
Observability dla MVP
Minimum viable observability:
- Crashlytics — crash reporting
- Firebase Analytics — user behavior
- Firebase Performance — app performance
- Logs — custom events
Wszystko darmowe w Firebase. Setup: 1 dzień.
Debugging Production Issues
1. Crash report: Stack trace + breadcrumbs
2. Reproduce: Spróbuj odtworzyć lokalnie
3. Fix: Napraw bug
4. Deploy: Push fix
5. Monitor: Sprawdź czy crash rate spadł
Bez monitoringu: nie wiesz że jest problem. Z monitoringiem: fix w godziny.
📝 Zadanie
Setup Firebase Crashlytics w swoim projekcie. Dodaj custom log. Wymuś crash (throw Exception). Zobacz crash report w Firebase Console. Dodaj breadcrumbs (user actions).