Spike: frontend telemetry for user activity tracking #199

Open
opened 2026-03-30 16:06:11 +00:00 by forgejo_admin · 0 comments
Contributor

Type

Spike

Lineage

Standalone -- discovered during jersey ordering session 2026-03-29. Lucas wants to see how users interact with westside-app, ideally in Grafana.

Repo

forgejo_admin/westside-landing (investigation covers westside-app frontend)

Question

What is the best self-hosted approach to track user activity (page views, session duration, click events, user journeys) in westside-app, viewable in Grafana?

What to Explore

  1. Self-hosted options -- Plausible CE, PostHog self-hosted, Umami, Matomo. Evaluate: resource footprint on k3s, Grafana integration, privacy compliance, maintenance burden.
  2. Raw event approach -- Custom event logging from SvelteKit to basketball-api (or dedicated telemetry endpoint) → Loki → Grafana. Lighter weight but more build effort.
  3. Keycloak session data -- Can Keycloak session events (being enabled in separate ticket) provide enough signal without frontend instrumentation?
  4. SvelteKit integration -- How does the chosen approach integrate with SvelteKit routing? Layout-level instrumentation vs. per-page? Does it work with Capacitor mobile?
  5. Check existing cluster resources -- can we afford another service or do we need a lightweight approach?

Success Criteria

  • At least 3 options evaluated with pros/cons and resource estimates
  • Grafana integration path documented for chosen approach
  • Recommended approach chosen with reasoning
  • Follow-up ticket(s) created if action needed, or "no action" conclusion documented

Time-box

Maximum time to spend: 1 hour investigation, output is tickets not code.

  • project-westside-basketball -- primary consumer
  • Keycloak event logging ticket (pal-e-platform) -- complementary server-side signal
  • Grafana auth dashboard ticket (pal-e-platform) -- where results would be visualized
### Type Spike ### Lineage Standalone -- discovered during jersey ordering session 2026-03-29. Lucas wants to see how users interact with westside-app, ideally in Grafana. ### Repo `forgejo_admin/westside-landing` (investigation covers westside-app frontend) ### Question What is the best self-hosted approach to track user activity (page views, session duration, click events, user journeys) in westside-app, viewable in Grafana? ### What to Explore 1. **Self-hosted options** -- Plausible CE, PostHog self-hosted, Umami, Matomo. Evaluate: resource footprint on k3s, Grafana integration, privacy compliance, maintenance burden. 2. **Raw event approach** -- Custom event logging from SvelteKit to basketball-api (or dedicated telemetry endpoint) → Loki → Grafana. Lighter weight but more build effort. 3. **Keycloak session data** -- Can Keycloak session events (being enabled in separate ticket) provide enough signal without frontend instrumentation? 4. **SvelteKit integration** -- How does the chosen approach integrate with SvelteKit routing? Layout-level instrumentation vs. per-page? Does it work with Capacitor mobile? 5. Check existing cluster resources -- can we afford another service or do we need a lightweight approach? ### Success Criteria - [ ] At least 3 options evaluated with pros/cons and resource estimates - [ ] Grafana integration path documented for chosen approach - [ ] Recommended approach chosen with reasoning - [ ] Follow-up ticket(s) created if action needed, or "no action" conclusion documented ### Time-box Maximum time to spend: 1 hour investigation, output is tickets not code. ### Related - `project-westside-basketball` -- primary consumer - Keycloak event logging ticket (pal-e-platform) -- complementary server-side signal - Grafana auth dashboard ticket (pal-e-platform) -- where results would be visualized
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/westside-app#199
No description provided.