Problem
Chronicler does not have a processor for iozone benchmark results. When the CPT pipeline runs iozone and attempts to export via chronicler, it fails with:
WARNING - Unknown test type: iozone
SKIPPED: Unknown test type
Context
Iozone is already supported by zathras/burden and the iozone-wrapper produces structured output:
results_iozone.csv — CSV with system metadata in comments + 15 result rows (3 filesystems × 5 test modes)
results_iozone.json — JSON array of the same data
test_results_report — PASS/FAIL status
Each result row contains 14 performance metrics (geometric means in MB/s):
all_ios, initwrite, rewrite, read, reread, rndread, rndwrite, backread, recrewrite, strideread, fwrite, frewrite, fread, freread
Grouped by filesystem (xfs, ext4, ext3) and test mode (incache, incache+fsync, incache+mmap, directio, outcache).
Current Workaround
Manual upload script that reads results_iozone.json and results_iozone.csv header metadata, builds an OpenSearch document matching the zathras schema, and uploads to the zathras-results index.
Requested
An iozone_processor.py in src/chronicler/processors/ that:
- Parses
results_iozone.json (or .csv) for performance data
- Extracts system metadata from CSV header comments (CPU family, cores, memory, OS, tuned profile)
- Creates one summary document with 15 runs (one per filesystem+mode combination)
- Each run contains the 14 iozone metrics
- Handles NaN values (fwrite/frewrite/fread/freread are NaN for directio and mmap modes)
- Sets
results.status from test_results_report
Notes
- Matt Lucius is currently splitting iozone into two benchmarks in zathras (auto mode vs throughput mode) — the processor may need to handle both output formats
- The iozone-wrapper v4.0 output format includes validated JSON via Pydantic schemas (
results_iozone_auto_schema.py)
Problem
Chronicler does not have a processor for iozone benchmark results. When the CPT pipeline runs iozone and attempts to export via chronicler, it fails with:
Context
Iozone is already supported by zathras/burden and the iozone-wrapper produces structured output:
results_iozone.csv— CSV with system metadata in comments + 15 result rows (3 filesystems × 5 test modes)results_iozone.json— JSON array of the same datatest_results_report— PASS/FAIL statusEach result row contains 14 performance metrics (geometric means in MB/s):
all_ios, initwrite, rewrite, read, reread, rndread, rndwrite, backread, recrewrite, strideread, fwrite, frewrite, fread, frereadGrouped by filesystem (xfs, ext4, ext3) and test mode (incache, incache+fsync, incache+mmap, directio, outcache).
Current Workaround
Manual upload script that reads
results_iozone.jsonandresults_iozone.csvheader metadata, builds an OpenSearch document matching the zathras schema, and uploads to thezathras-resultsindex.Requested
An
iozone_processor.pyinsrc/chronicler/processors/that:results_iozone.json(or.csv) for performance dataresults.statusfromtest_results_reportNotes
results_iozone_auto_schema.py)