feat(admin): métriques d'utilisation (dérivé DB + AnalyticsEvent) #13

Closed
kyuno wants to merge 1 commit from feat/admin-metrics into feat/admin-web-scaffold
Owner

Regroupée dans #15 (une seule PR pour tout le bloc « application d'administration »). Fermée.

Regroupée dans #15 (une seule PR pour tout le bloc « application d'administration »). Fermée.
kyuno added 1 commit 2026-08-28 14:49:43 +02:00
feat(admin): metriques d'utilisation (derive DB + AnalyticsEvent)
Some checks failed
CI / lint (push) Failing after 36s
CI / build (push) Successful in 3m41s
CI / e2e (push) Successful in 11m54s
CI / intent-service-test (push) Successful in 19m33s
CI / test (push) Failing after 22m32s
b08081e48d
PR 3 du chantier admin. Tableau de bord metriques : snapshot de compteurs
+ series temporelles journalieres.

Schema (migration admin_metrics) :
- AnalyticsEvent (type String libre, actorType/actorId sans FK, context Json,
  index [type, created_at]) + WorkerHeartbeat (cable en PR 4).
- colonnes createdAt @default(now()) sur UserProfile / Recipe / Planning /
  PlanningItem (lecture admin uniquement ; lignes existantes = timestamp de
  la migration).

Instrumentation (lib/analytics.service.ts, fire-and-forget) :
- analytics.recordEvent(type, {actorId?, context?}) : retourne void, insert
  detache, echec loggue+avale, jamais de latence sur la requete.
- points d'appel : user.signup, recipe.created, recipe.imported,
  planning.item_added, tech_step.correction_submitted, shopping_list.viewed.

API : GET /admin/metrics?days= (7-365, defaut 30, requireAdmin) ->
admin-metrics.service.ts. bucketByDay pur (zero-remplissage, teste sans
base). MetricsView dans packages/shared.

Front : DashboardPage (tuiles KPI + un graphe recharts par serie + listes
recettes-par-source / evenements), logique pure dans dashboard.ts, i18n
admin.dashboard.*. AdminApiClient.getMetrics.

reset-db.ts truncate analytics_events + worker_heartbeats.
Tests : Mocha admin-metrics.test.ts (bucketByDay pur x2 verts ; snapshot,
series zero-remplies, event user.signup fire-and-forget) ; Cypress
dashboard.cy.ts (2 verts). specs/backend-architecture.md : section admin.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kyuno closed this pull request 2026-08-28 15:27:58 +02:00
Some checks failed
CI / lint (push) Failing after 36s
CI / build (push) Successful in 3m41s
CI / e2e (push) Successful in 11m54s
CI / intent-service-test (push) Successful in 19m33s
CI / test (push) Failing after 22m32s

Pull request closed

Sign in to join this conversation.
No reviewers
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: kyuno/batchCooking#13
No description provided.