Readyset Docs

Snapshots and diff

Every audit is saved. Revisit past runs, compare across time, and track how your fleet evolves.

Every rdst audit and rdst fleet audit run is persisted as a snapshot, whether you used the default email flow or --verbose. Snapshots are the foundation of historical comparison — diffing today's audit against last month's tells you whether things are getting better or worse.

Single-target snapshots

Every rdst audit run gets a unique run ID (e.g. audit_prod-orders_20260421_120402).

# List past audits for any target
rdst audit list

# List for one target
rdst audit list --target prod-orders

# View a past audit
rdst audit show audit_prod-orders_20260421_120402

# Export the captured queries from a past run
rdst audit show audit_prod-orders_20260421_120402 --export-captured-queries

rdst audit show prints the same report the original run produced. It does not re-run anything, so it's safe to invoke against very old snapshots.

Named baselines

For anything you plan to compare against later, give it a readable name with --save <name>:

# March: save a baseline
rdst audit --target prod-orders --duration 5m --save march-baseline

# April: compare against it
rdst audit --target prod-orders --duration 5m --diff march-baseline

The diff output highlights:

What changedHow it's shown
Database size+18 GB (4% growth)
Connection pool statenew peak active_connections: 142 → 184
Cache hit rate97.2% → 94.8% ⚠
Top-query latencyper-query avg_time deltas, with winners and losers
New queriesqueries that weren't in the baseline at all
Missing queriesqueries that were in the baseline but dropped out
Readyset opportunity score78 → 84 (up 6)
LLM insight drift"new bottleneck" / "resolved" annotations

Fleet snapshots

rdst fleet audit produces a fleet snapshot — a single snapshot containing every target's per-target snapshot plus the fleet-wide summary.

# List all saved fleet snapshots
rdst fleet snapshots

# Save a named fleet snapshot
rdst fleet audit --duration 5m --save baseline-2026-q2

# Diff two fleet snapshots
rdst fleet diff baseline-2026-q1 baseline-2026-q2

Fleet diff output

Fleet Diff — baseline-2026-q1 → baseline-2026-q2
────────────────────────────────────────────────────────────────
  Fleet changes:
    + 2 targets added      (prod-newcluster-writer, prod-newcluster-reader-1)
    - 1 target removed     (legacy-mysql)
    Net: 11 → 12 targets

  Cross-instance patterns:
    RESOLVED:  customers(segment, created_at) index now deployed on 9/12 targets
               (was 0/11 in baseline)
    NEW:       orders.total_cents growth 840% on prod-orders-writer (5GB → 47GB)

  Readyset opportunity deltas:
    prod-orders-writer      78 → 92   (up)    ← cache even more helpful now
    prod-inventory-writer   52 → 38   (down)  ← workload shifted away from cacheables

  Sizing verdict changes:
    staging-orders          oversized → right-sized   (you downsized, nice)

  Per-target diffs:  (see `rdst audit show <run_id>` for each)

Patterns that work well

Quarterly baselines: Save a named snapshot every quarter, keep a growing audit trail of how the fleet evolved.

rdst fleet audit --duration 5m --save baseline-$(date +%Y-q%q)

Before-and-after changes: Save a baseline before a big database change, re-audit after, and diff.

rdst audit --target prod-orders --duration 5m --save before-index-migration
# ... deploy the migration ...
rdst audit --target prod-orders --duration 5m --diff before-index-migration

CI for sizing drift: Run a nightly fleet audit with --json and alert on targets that flip from right-sized to under-provisioned overnight.

rdst fleet audit --duration 1m --json --no-insights > /tmp/fleet.json
# diff against yesterday's file, alert on any sizing-verdict regressions

--no-insights makes a nightly fleet audit much cheaper (skips the LLM step) while still producing metrics, sizing, and top-queries data — enough for monitoring.

Where snapshots come from vs. rdst audit list

There's a small vocabulary distinction worth knowing:

Single-target auditFleet audit
What it isOne snapshot per target per runOne snapshot containing N per-target snapshots
Listed withrdst audit listrdst fleet snapshots
Shown withrdst audit show <run_id>rdst audit show <target_run_id> (for one target)
Diffed withrdst audit --diff <baseline> (re-runs a fresh audit and compares)rdst fleet diff snap1 snap2 (compares two existing snapshots)

See also