Pular para o conteúdo
Documentação

Workload Replay

Capture um snapshot de workload do profiler, replay contra um cluster target, depois rode mutações "what-if" (drop um índice, adicionar um índice hipotético, mudar shard key) para ver o impacto antes de tocar em produção.

O que é

Um workspace de 4 tabs: Capture (grava do profiler ativo), Snapshots (gerencia capturas salvas), Replay (roda um snapshot contra um cluster diferente), What-if (aplica uma mutação hipotética e mede o delta em nReturned, docsExamined, ms). Snapshots persistem em localStorage para que você possa replay semanas depois.

Quando usar

Antes de dropar um índice "parece não usado" — replay o workload da semana passada com o índice dropado e confirme que nenhuma query degrada. Antes de shardar uma collection quente — replay com shard keys hipotéticas e escolha a melhor distribuição. Antes de um refactor grande — capture, refatore em dev, replay para verificar que queries ainda funcionam.

Como abrir

  1. No app desktop do NoSqlStudio, abra o menu Tools → Workload Replay, ou pressione Ctrl+Alt+Shift+X.
  2. Uma tab de workspace abre com 4 tabs: Capture / Snapshots / Replay / What-if.
  3. Escolha a tab Capture para começar a gravar da sua conexão profiler ativa.

Trabalhando com ele

  • Capture — escolhe uma conexão profiler-enabled. Grava toda entry system.profile num snapshot. Stop captures a qualquer momento.
  • Snapshots — lista de capturas salvas com timestamp, cluster source, e contagem de queries. Exporte como JSON para compartilhar.
  • Replay — escolha um snapshot + uma conexão target. Engine re-executa toda query contra o target e agrega deltas de timing. Use isso para validar que dev/staging combina com comportamento de produção.
  • What-if — escolha um snapshot + um target + uma mutação hipotética (drop index X, add index Y em shape Z, troca shard key). Engine emite um whatIfReport com métricas before/after per-query — pretty-printed e exportável.

Limitações (v1)

  • Capture só vê o que o profiler capturou — defina profiler level para 2 (todas as ops) para cobertura completa antes de gravar. Default level 1 (só slow ops) perde queries rápidas.
  • Replay contra um target — certifique-se de que o target tem a mesma shape de dataset; do contrário, timings são sem sentido.
  • Mutações what-if são aplicadas in-memory só no target — elas NÃO persistem. Re-rodar o mesmo what-if contra o mesmo target é idempotente.