summaryrefslogtreecommitdiff
path: root/docs/tutorial/tapes
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorial/tapes')
-rw-r--r--docs/tutorial/tapes/01-launch.tape23
-rw-r--r--docs/tutorial/tapes/02-overview-tab.tape23
-rw-r--r--docs/tutorial/tapes/03-syscalls-tab.tape36
-rw-r--r--docs/tutorial/tapes/04-files-tab.tape32
-rw-r--r--docs/tutorial/tapes/05-processes-tab.tape30
-rw-r--r--docs/tutorial/tapes/06-latency-gaps-tab.tape22
-rw-r--r--docs/tutorial/tapes/07-stream-live.tape22
-rw-r--r--docs/tutorial/tapes/08-stream-pause-filter.tape46
-rw-r--r--docs/tutorial/tapes/09-stream-regex-search.tape40
-rw-r--r--docs/tutorial/tapes/10-stream-csv-export.tape28
-rw-r--r--docs/tutorial/tapes/11-pid-tid-probe.tape41
-rw-r--r--docs/tutorial/tapes/12-parquet-recording.tape28
-rw-r--r--docs/tutorial/tapes/13-tui-flamegraph.tape22
-rw-r--r--docs/tutorial/tapes/14-headless-modes.tape38
14 files changed, 431 insertions, 0 deletions
diff --git a/docs/tutorial/tapes/01-launch.tape b/docs/tutorial/tapes/01-launch.tape
new file mode 100644
index 0000000..1e2b558
--- /dev/null
+++ b/docs/tutorial/tapes/01-launch.tape
@@ -0,0 +1,23 @@
+# 01-launch: cold start of ior. Shows the PID picker, then the default landing tab
+# (Flamegraph) once Enter selects "All PIDs".
+Output demo/assets/01-launch.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 4500ms
+Screenshot demo/assets/screenshot-pidpicker.png
+Sleep 1500ms
+Enter
+Sleep 5s
+Screenshot demo/assets/screenshot-dashboard.png
+Sleep 2s
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/02-overview-tab.tape b/docs/tutorial/tapes/02-overview-tab.tape
new file mode 100644
index 0000000..a16a0b8
--- /dev/null
+++ b/docs/tutorial/tapes/02-overview-tab.tape
@@ -0,0 +1,23 @@
+# 02-overview-tab: dashboard Overview tab — sparkline, top syscalls, top paths fill in.
+# Key 2 switches to Overview (key 1 is Flamegraph, the default landing tab).
+Output demo/assets/02-overview-tab.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "2"
+Sleep 6s
+Screenshot demo/assets/screenshot-overview.png
+Sleep 1s
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/03-syscalls-tab.tape b/docs/tutorial/tapes/03-syscalls-tab.tape
new file mode 100644
index 0000000..376f632
--- /dev/null
+++ b/docs/tutorial/tapes/03-syscalls-tab.tape
@@ -0,0 +1,36 @@
+# 03-syscalls-tab: sortable syscalls table, j/k to scroll, s/S to sort/reverse-sort.
+# Key 3 switches to Syscalls.
+Output demo/assets/03-syscalls-tab.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "3"
+Sleep 3s
+Type "j"
+Sleep 400ms
+Type "j"
+Sleep 400ms
+Type "j"
+Sleep 800ms
+Type "k"
+Sleep 600ms
+Right
+Sleep 600ms
+Type "s"
+Sleep 1500ms
+Type "S"
+Sleep 2s
+Screenshot demo/assets/screenshot-syscalls.png
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/04-files-tab.tape b/docs/tutorial/tapes/04-files-tab.tape
new file mode 100644
index 0000000..49adfee
--- /dev/null
+++ b/docs/tutorial/tapes/04-files-tab.tape
@@ -0,0 +1,32 @@
+# 04-files-tab: files tab plus directory-grouped view toggle (`d`).
+# Key 4 switches to Files.
+Output demo/assets/04-files-tab.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "4"
+Sleep 3s
+Type "j"
+Sleep 400ms
+Type "j"
+Sleep 400ms
+Type "j"
+Sleep 800ms
+Type "d"
+Sleep 3s
+Screenshot demo/assets/screenshot-files-grouped.png
+Type "d"
+Sleep 2s
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/05-processes-tab.tape b/docs/tutorial/tapes/05-processes-tab.tape
new file mode 100644
index 0000000..ad5f64e
--- /dev/null
+++ b/docs/tutorial/tapes/05-processes-tab.tape
@@ -0,0 +1,30 @@
+# 05-processes-tab: processes tab, scroll, and reverse-sort.
+# Key 5 switches to Processes.
+Output demo/assets/05-processes-tab.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "5"
+Sleep 3s
+Type "j"
+Sleep 400ms
+Type "j"
+Sleep 400ms
+Type "j"
+Sleep 800ms
+Type "S"
+Sleep 2s
+Screenshot demo/assets/screenshot-processes.png
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/06-latency-gaps-tab.tape b/docs/tutorial/tapes/06-latency-gaps-tab.tape
new file mode 100644
index 0000000..b19ae58
--- /dev/null
+++ b/docs/tutorial/tapes/06-latency-gaps-tab.tape
@@ -0,0 +1,22 @@
+# 06-latency-gaps-tab: latency + inter-syscall gap histograms (driven by dd writes).
+# Key 6 switches to Latency.
+Output demo/assets/06-latency-gaps-tab.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "6"
+Sleep 8s
+Screenshot demo/assets/screenshot-latency.png
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/07-stream-live.tape b/docs/tutorial/tapes/07-stream-live.tape
new file mode 100644
index 0000000..9d7ad4f
--- /dev/null
+++ b/docs/tutorial/tapes/07-stream-live.tape
@@ -0,0 +1,22 @@
+# 07-stream-live: stream tab live-tailing rows.
+# Key 7 switches to Stream.
+Output demo/assets/07-stream-live.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "7"
+Sleep 6s
+Screenshot demo/assets/screenshot-stream-live.png
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/08-stream-pause-filter.tape b/docs/tutorial/tapes/08-stream-pause-filter.tape
new file mode 100644
index 0000000..416830c
--- /dev/null
+++ b/docs/tutorial/tapes/08-stream-pause-filter.tape
@@ -0,0 +1,46 @@
+# 08-stream-pause-filter: pause stream, navigate cells, push two filters onto the stack, undo with Esc.
+# Key 7 switches to Stream.
+Output demo/assets/08-stream-pause-filter.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "7"
+Sleep 4s
+Space
+Sleep 1s
+Down
+Sleep 300ms
+Down
+Sleep 300ms
+Down
+Sleep 800ms
+Right
+Sleep 500ms
+Right
+Sleep 500ms
+Enter
+Sleep 1500ms
+Down
+Sleep 400ms
+Right
+Sleep 400ms
+Enter
+Sleep 2s
+Screenshot demo/assets/screenshot-stream-filtered.png
+Escape
+Sleep 1s
+Escape
+Sleep 1500ms
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/09-stream-regex-search.tape b/docs/tutorial/tapes/09-stream-regex-search.tape
new file mode 100644
index 0000000..b643740
--- /dev/null
+++ b/docs/tutorial/tapes/09-stream-regex-search.tape
@@ -0,0 +1,40 @@
+# 09-stream-regex-search: regex search forward (/), n to advance, ? for backward.
+# Key 7 switches to Stream.
+Output demo/assets/09-stream-regex-search.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "7"
+Sleep 4s
+Space
+Sleep 1s
+Type "/"
+Sleep 600ms
+Type "openat"
+Sleep 700ms
+Enter
+Sleep 1500ms
+Type "n"
+Sleep 800ms
+Type "n"
+Sleep 800ms
+Screenshot demo/assets/screenshot-stream-search.png
+Type "?"
+Sleep 600ms
+Type "stat"
+Sleep 700ms
+Enter
+Sleep 1500ms
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/10-stream-csv-export.tape b/docs/tutorial/tapes/10-stream-csv-export.tape
new file mode 100644
index 0000000..c1f4935
--- /dev/null
+++ b/docs/tutorial/tapes/10-stream-csv-export.tape
@@ -0,0 +1,28 @@
+# 10-stream-csv-export: 'e' to export current filtered stream snapshot, then ls the CSV produced.
+# Key 7 switches to Stream.
+Output demo/assets/10-stream-csv-export.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "7"
+Sleep 4s
+Type "e"
+Sleep 2s
+Screenshot demo/assets/screenshot-stream-export.png
+Sleep 1s
+Type "q"
+Sleep 1s
+Type "ls -lh ior-stream-*.csv"
+Enter
+Sleep 2s
diff --git a/docs/tutorial/tapes/11-pid-tid-probe.tape b/docs/tutorial/tapes/11-pid-tid-probe.tape
new file mode 100644
index 0000000..caccc48
--- /dev/null
+++ b/docs/tutorial/tapes/11-pid-tid-probe.tape
@@ -0,0 +1,41 @@
+# 11-pid-tid-probe: re-open PID picker (p), TID picker (t), probe toggle dialog (o).
+Output demo/assets/11-pid-tid-probe.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "p"
+Sleep 2s
+Down
+Sleep 400ms
+Down
+Sleep 400ms
+Screenshot demo/assets/screenshot-pidpicker-open.png
+Escape
+Sleep 1s
+Type "t"
+Sleep 2s
+Screenshot demo/assets/screenshot-tidpicker.png
+Escape
+Sleep 1s
+Type "o"
+Sleep 2s
+Down
+Sleep 400ms
+Down
+Sleep 400ms
+Screenshot demo/assets/screenshot-probes.png
+Escape
+Sleep 1s
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/12-parquet-recording.tape b/docs/tutorial/tapes/12-parquet-recording.tape
new file mode 100644
index 0000000..c6f3399
--- /dev/null
+++ b/docs/tutorial/tapes/12-parquet-recording.tape
@@ -0,0 +1,28 @@
+# 12-parquet-recording: start parquet recording (R), accept default filename (Enter), dwell, stop (R), exit, ls the file.
+Output demo/assets/12-parquet-recording.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior"
+Enter
+Sleep 5s
+Enter
+Sleep 4s
+Type "R"
+Sleep 1500ms
+Enter
+Sleep 4s
+Screenshot demo/assets/screenshot-recording-active.png
+Type "R"
+Sleep 1500ms
+Type "q"
+Sleep 1s
+Type "ls -lh ior-recording-*.parquet"
+Enter
+Sleep 2s
diff --git a/docs/tutorial/tapes/13-tui-flamegraph.tape b/docs/tutorial/tapes/13-tui-flamegraph.tape
new file mode 100644
index 0000000..7572159
--- /dev/null
+++ b/docs/tutorial/tapes/13-tui-flamegraph.tape
@@ -0,0 +1,22 @@
+# 13-tui-flamegraph: in-TUI flamegraph view. The default landing tab (key `1`) is the
+# live flamegraph. Workload running in the background drives real frame data.
+# `-fields` and `-count` let you reshape stack ordering and the size metric.
+Output demo/assets/13-tui-flamegraph.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "sudo -n /home/paul/git/ior/ior -fields comm,path,tracepoint -count count"
+Enter
+Sleep 5s
+Enter
+Sleep 8s
+Screenshot demo/assets/screenshot-flamegraph.png
+Sleep 2s
+Type "q"
+Sleep 1s
diff --git a/docs/tutorial/tapes/14-headless-modes.tape b/docs/tutorial/tapes/14-headless-modes.tape
new file mode 100644
index 0000000..ce894f6
--- /dev/null
+++ b/docs/tutorial/tapes/14-headless-modes.tape
@@ -0,0 +1,38 @@
+# 14-headless-modes: all three headless flows in one tape — -flamegraph -name (.ior.zst),
+# -parquet (streaming rows), -plain (CSV to stdout). Each capped with -duration so the demo terminates.
+Output demo/assets/14-headless-modes.gif
+Set Shell "bash"
+Set Padding 20
+
+Hide
+Type "cd $(mktemp -d -t ior-demo-XXXX) && clear"
+Enter
+Sleep 300ms
+Show
+
+Type "# 1) Aggregated native trace artifact (.ior.zst)"
+Enter
+Sleep 800ms
+Type "sudo -n /home/paul/git/ior/ior -flamegraph -name demo-trace -duration 5"
+Enter
+Sleep 7s
+Type "ls -lh demo-trace*.ior.zst"
+Enter
+Sleep 2s
+
+Type "# 2) Per-row streaming Parquet"
+Enter
+Sleep 800ms
+Type "sudo -n /home/paul/git/ior/ior -parquet demo.parquet -duration 5"
+Enter
+Sleep 7s
+Type "ls -lh demo.parquet"
+Enter
+Sleep 2s
+
+Type "# 3) Plain CSV to stdout (head only)"
+Enter
+Sleep 800ms
+Type "sudo -n /home/paul/git/ior/ior -plain -duration 3 2>/dev/null | head -n 8"
+Enter
+Sleep 6s