Monitoring, Logging & Analytics
API logging
- Structured logging via
pkg/logging, levelLOGGING_LEVEL(defaultdebug), written toLOGGING_FILE(./logs/logfile.log) — see bme-konza-api/logs/. - ⚠️ A file inside the container is ephemeral — lost on redeploy.
[TODO: are logs shipped anywhere / viewable in Coolify? Set up retention if not.] - Planned: VictoriaLogs for log aggregation/search (named in stack.md;
not yet wired up — not in
go.mod). Tracked in roadmap.md.
Background jobs (River)
Background work runs on the River queue (Postgres-backed) — see
api-backend.md. River stores job/queue state in
Postgres, so failed/retried jobs are inspectable via its tables. [TODO: is there a River
dashboard/UI in use, and where are job failures surfaced?]
Crash reporting (mobile)
- Firebase Crashlytics in the app. ProGuard
mapping.txtis uploaded on every prod build so stack traces de-obfuscate. View crashes in the Firebase console (<PROD_FIREBASE_PROJECT>).
Analytics
- Firebase Analytics in the app.
- Google Analytics on the web app via
nuxt-gtag(GOOGLE_MEASUREMENT_ID). - In-app analytics tables in Postgres (
*_stats,user_activity_logs,search_state_log) feed theanalyticsAPI + monthly/user-interaction report workers.
Reports
The API emails reports via SMTP (SMTP_REPORTS_EMAIL) — the MonthlyReportWorker and
UserInteractionReportWorker River jobs (scheduled as River periodic jobs, see
api-backend.md). [TODO: who receives them and the exact
cadence of each periodic job.]
Uptime & alerting — [TODO] 🔑
- [ ] Is there any uptime monitor / health-check on the API and sites? (The API likely has
a health route —
[TODO: path].) - [ ] Where do alerts go (email/Slack/none)?
- [ ] Does Coolify send deploy/health notifications anywhere?
- [ ] Links to all dashboards (Firebase, GA, Play vitals, Coolify, server metrics).