Skip to content

feat(scale): performance benchmarks + FinOps monitoring (k6 + cost dashboards par tenant) #362

Description

@Yanstart

Cadrage stratégique 2026 (mai 2026) — PIVOT PRODUIT

Mesurer pour gérer. Sans benchmarks et observation des coûts par
tenant, impossible de tarifer ni d'optimiser.
Voir `.claude/memory/VISION_ALIGNMENT.md §0.6`.

Contexte

Aujourd'hui : tests de performance ad-hoc (Wave 7 platform hardening) et
monitoring infrastructure (Prometheus + Grafana). Insuffisant pour un produit :

  1. Pas de scénarios de charge produit : combien de tenants × users × annotations × inferences ML simultanés peuvent être servis sur un cluster donné ?
  2. Pas de SLO documentés : on ne sait pas formellement à quoi on s'engage
  3. Pas de FinOps : impossible de répartir le coût d'infrastructure par tenant pour la facturation
  4. Pas de capacity planning : impossible de dimensionner un cluster pour N tenants futurs

Cible

  1. Scénarios k6 / Locust réalistes :
    • Pathologiste typique : ouvre 5 lames/h, dessine 20 annotations, lance 2 ML inferences
    • RCP session : 5 utilisateurs co-visualisent + chat
    • Fine-tuning admin : déclenche 1 fine-tuning d'un foundation model
  2. SLO documentés et mesurés :
    • Availability : 99.9% par tenant
    • Tile load P95 : < 100ms
    • Annotation API P95 : < 200ms
    • ML inference P95 : < 5s pour heatmap, < 30s pour fine-tuning step
    • Error rate : < 0.5%
  3. FinOps dashboards Grafana :
    • Coût compute par tenant (CPU/GPU hours)
    • Coût storage par tenant (TB stockés × tier)
    • Coût bandwidth par tenant
    • Coût total per tenant
  4. Capacity planning model : spreadsheet ou notebook Jupyter qui prend (N tenants, profile usage) → (cluster size, cost estimate)

Approche technique proposée

  1. `tests/load/` avec scripts k6 paramétrables (N users, durée, ramp-up) + rapport HTML
  2. SLO : framework Wave 13 feat(scale): observability at scale (OpenTelemetry + log aggregation + multi-tenant SLO) #360 (Pyrra/Sloth) — déclarer les 5 SLO ci-dessus
  3. FinOps : métriques Prometheus + tag `tenant_id` propagé (Wave 13 feat(scale): observability at scale (OpenTelemetry + log aggregation + multi-tenant SLO) #360 prerequisites) + tarifs cloud configurables
  4. Capacity planning : notebook `scripts/capacity-planning.ipynb` reproductible
  5. Documentation `docs/Admin/performance-and-cost.md`

Acceptance criteria

  • 3 scénarios k6 / Locust documentés et runnables
  • SLO framework actif avec alertes Prometheus si SLO breached par tenant
  • Dashboard Grafana "FinOps per tenant"
  • Capacity planning notebook
  • Tests CI : régression P95 > 20% détectée
  • Rapport benchmark dans `docs/Admin/performance-baseline.md`
  • Conformité AI Act : SLO exposables (Article 15)

Dépendances

Références

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions