How louwrentius/fio-plot works
This repository combines two storage-benchmark tools: bench-fio runs configurable FIO workloads and saves results, while fio-plot imports FIO JSON or log data and renders charts. The benchmark workflow covers configuration, validation, workload generation, and execution; the plotting workflow covers configuration, data import, chart-specific processing, and rendering. The README documents 2D, comparison, 3D, log-line, and latency-histogram charts. Some plotting dispatch details are unsampled, so those links are left unasserted or marked unverified.
Main entry points: bench_fio/__init__.py Bench-fio CLI · fio_plot/__init__.py Fio-plot CLI · runfio.py Benchmark runner · supporting.py Plot utilities
Components 29
Benchmark runner
- Bench-fio CLI
bench_fio/__init__.py - Arguments and defaults
bench_fio/benchlib/argparsing.py - INI settings
bench_fio/benchlib/parseini.py - Target validation
bench_fio/benchlib/checks.py - Remote checks
bench_fio/benchlib/network.py - Workload selection
bench_fio/benchlib/supporting.py - Run summary
bench_fio/benchlib/display.py - Benchmark runner
bench_fio/benchlib/runfio.py - FIO job generation
bench_fio/benchlib/generatefio.py - Benchmark defaults
bench_fio/benchlib/defaultsettings.py
Plot configuration
- Fio-plot CLI
fio_plot/__init__.py - Arguments and defaults
fio_plot/fiolib/argparsing.py - INI settings
fio_plot/fiolib/iniparsing.py - Preflight checks
fio_plot/fiolib/flightchecks.py
Plot data
- Chart data routing
fio_plot/fiolib/getdata.py - JSON import
fio_plot/fiolib/jsonimport.py - JSON parsing
fio_plot/fiolib/jsonparsing.py - Log import
fio_plot/fiolib/dataimport.py - Chart data support
fio_plot/fiolib/shared_chart.py - Plot utilities
fio_plot/fiolib/supporting.py
Chart rendering
- 2D charts
fio_plot/fiolib/graph2d.py - 2D bar charts
fio_plot/fiolib/bar2d.py - 3D charts
fio_plot/fiolib/bar3d.py - Latency histogram
fio_plot/fiolib/barhistogram.py - Log line charts
fio_plot/fiolib/graph2dsupporting.py - Chart tables
fio_plot/fiolib/tables.py - Table support
fio_plot/fiolib/table_support.py
Other components
- Operator
- FIO engine
Connections 35
- Operator → Bench-fio CLI: configures and runs
README.md - Bench-fio CLI → Arguments and defaults: parses options
bench_fio/__init__.py - Bench-fio CLI → INI settings: loads INI
bench_fio/__init__.py - Bench-fio CLI → Target validation: validates settings
bench_fio/__init__.py - Target validation → Benchmark runner: checks FIO version
bench_fio/benchlib/checks.py - Bench-fio CLI → Remote checks: checks remote
bench_fio/__init__.py - Bench-fio CLI → Workload selection: builds test list
bench_fio/__init__.py - Bench-fio CLI → Run summary: prints summary
bench_fio/__init__.py - Bench-fio CLI → Benchmark runner: runs benchmarks
bench_fio/__init__.py - Benchmark runner → FIO job generation: generates job file
bench_fio/benchlib/runfio.py - FIO job generation → Benchmark defaults: uses setting map
bench_fio/benchlib/generatefio.py - Benchmark runner → FIO engine: executes workload
bench_fio/benchlib/runfio.py - FIO engine → Operator: produces results
README.md - Operator → Fio-plot CLI: requests charts
README.md - Fio-plot CLI → Arguments and defaults: parses arguments
fio_plot/__init__.py - Fio-plot CLI → INI settings: loads INI
fio_plot/__init__.py - Fio-plot CLI → Preflight checks: runs checks
fio_plot/__init__.py - Fio-plot CLI → Chart data routing: selects chart data
fio_plot/__init__.py - Chart data routing → JSON import: dispatches JSON
- Chart data routing → Log import: dispatches logs
- 2D charts → Log import: imports log data
fio_plot/fiolib/graph2d.py - 2D charts → Log line charts: uses line support
fio_plot/fiolib/graph2d.py - Log line charts → JSON import: uses JSON import
fio_plot/fiolib/graph2dsupporting.py - Log line charts → JSON parsing: uses JSON parsing
fio_plot/fiolib/graph2dsupporting.py - JSON parsing → Plot utilities: uses helpers
fio_plot/fiolib/jsonparsing.py - 2D charts → Plot utilities: uses utilities
fio_plot/fiolib/graph2d.py - 2D bar charts → Chart data support: uses chart data
fio_plot/fiolib/bar2d.py - 2D bar charts → Chart tables: renders tables
fio_plot/fiolib/bar2d.py - 2D bar charts → Table support: uses table helpers
fio_plot/fiolib/bar2d.py - Chart tables → Table support: uses table helpers
fio_plot/fiolib/tables.py - 3D charts → Chart data support: uses chart data
fio_plot/fiolib/bar3d.py - Latency histogram → Chart data support: uses chart data
fio_plot/fiolib/barhistogram.py - 3D charts → Plot utilities: uses utilities
fio_plot/fiolib/bar3d.py - Latency histogram → Plot utilities: uses utilities
fio_plot/fiolib/barhistogram.py - Fio-plot CLI → Operator: writes chart images
README.md