From 14c15ff8387f5829a2afde5a0792d2e254a452aa Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 13 Mar 2026 07:56:36 +0200 Subject: docs: explain parquet recording modes --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index a63f6a3..07a8f8a 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,54 @@ Flamegraphs are available only inside the TUI dashboard. Use `-fields` to change the stack order and `-count` to choose the metric. The default stack order is `comm,path,tracepoint` (bottom to top). +## Recording Modes + +`ior` has three distinct output flows. They are intentionally different: + +| Mode | How to use it | What it writes | Filter behavior | +| --- | --- | --- | --- | +| TUI dashboard | default startup | nothing continuously; data stays in memory unless you export | current TUI/global filters drive what you see | +| TUI CSV snapshot export | press `e` in the dashboard | one `ior-stream-.csv` snapshot of the current filtered stream view | exports only the currently filtered in-memory rows | +| Parquet recording | press `R` in the TUI, or start with `-parquet ` | a streaming Parquet file of traced syscall rows | TUI mode records rows that pass the active TUI filter; headless `-parquet` records all traced rows | + +Important distinction: + +- CSV export is a point-in-time snapshot of the ring buffer. +- Parquet recording is a streaming capture from start to stop. +- The ring buffer is capped, so CSV export is not a replacement for Parquet recording. + +### TUI Parquet Recording + +Start a recording from the dashboard with `R`. + +- First `R`: open a filename prompt (`ior-recording-.parquet` by default). +- `Enter`: start recording to that file. +- Second `R`: stop and finalize the active Parquet file. +- Recording stops automatically when you quit the TUI or reselect PID/TID/session scope. + +Lifecycle details: + +- TUI recording uses the active TUI global filter at emission time. +- If a filter change restarts tracing, the recorder stays alive and continues writing matching rows after the restart. +- The dashboard footer shows the active recording path or the last recording error. + +### Headless Parquet Recording + +Use `-parquet` to skip the TUI and stream traced syscall rows directly to a Parquet file: + +```shell +sudo ./ior -parquet trace.parquet -duration 60 +``` + +Headless Parquet mode behavior: + +- skips the TUI completely +- records all traced rows +- rejects content filters such as `-comm`, `-path`, `-pid`, and `-tid` +- cannot be combined with `-plain`, `-flamegraph`, `--testflames`, or `--testliveflames` + +Use headless mode when you want a full recording, and TUI mode when you want interactive filtering plus optional start/stop recording from the dashboard. + ## TUI Navigation The TUI interface provides an in‑screen help panel (toggle with **H**) that lists all available keys. Use this help screen to discover navigation shortcuts. @@ -148,6 +196,7 @@ Help visibility: - `6`: `Stream` tab. - `7`: `Stream` tab (alias). - `e`: export filtered stream rows to CSV (`ior-stream-.csv`) in current working directory. +- `R`: start or stop Parquet recording from the TUI dashboard. - `p`: re-open process selector (PID selection flow). - `t`: open TID selector flow. - `o`: open probe selection/toggling dialog. -- cgit v1.2.3