Ir al contenido
Documentación

Workload Replay

Capture un snapshot de workload del profiler, replay contra un cluster target, luego corra mutaciones "what-if" (drop un índice, agregar un índice hipotético, cambiar shard key) para ver el impacto antes de tocar producción.

Qué es

Un workspace de 4 tabs: Capture (graba del profiler activo), Snapshots (gestiona capturas guardadas), Replay (corre un snapshot contra un cluster diferente), What-if (aplica una mutación hipotética y mide el delta en nReturned, docsExamined, ms). Snapshots persisten en localStorage para que pueda replay semanas después.

Cuándo usar

Antes de dropar un índice "parece no usado" — replay el workload de la semana pasada con el índice dropado y confirme que ninguna query degrada. Antes de shardear una collection caliente — replay con shard keys hipotéticas y elija la mejor distribución. Antes de un refactor grande — capture, refactorice en dev, replay para verificar que queries todavía funcionan.

Cómo abrirlo

  1. En el app desktop del NoSqlStudio, abra el menú Tools → Workload Replay, o presione Ctrl+Alt+Shift+X.
  2. Un tab de workspace abre con 4 tabs: Capture / Snapshots / Replay / What-if.
  3. Elija el tab Capture para empezar a grabar de su conexión profiler activa.

Trabajando con él

  • Capture — elige una conexión profiler-enabled. Graba cada entry system.profile en un snapshot. Stop captures en cualquier momento.
  • Snapshots — lista de capturas guardadas con timestamp, cluster source, y conteo de queries. Exporte como JSON para compartir.
  • Replay — elija un snapshot + una conexión target. Engine re-ejecuta cada query contra el target y agrega deltas de timing. Use esto para validar que dev/staging combina con comportamiento de producción.
  • What-if — elija un snapshot + un target + una mutación hipotética (drop index X, add index Y en shape Z, cambia shard key). Engine emite un whatIfReport con métricas before/after per-query — pretty-printed y exportable.

Limitaciones (v1)

  • Capture solo ve lo que el profiler capturó — defina profiler level a 2 (todas las ops) para cobertura completa antes de grabar. Default level 1 (solo slow ops) pierde queries rápidas.
  • Replay contra un target — asegúrese de que el target tiene la misma shape de dataset; de lo contrario, timings son sin sentido.
  • Mutaciones what-if son aplicadas in-memory solo en el target — NO persisten. Re-correr el mismo what-if contra el mismo target es idempotente.