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
- En el app desktop del NoSqlStudio, abra el menú Tools → Workload Replay, o presione Ctrl+Alt+Shift+X.
- Un tab de workspace abre con 4 tabs: Capture / Snapshots / Replay / What-if.
- 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.