(cli-aggregate)=
Aggregate multiple benchmark result files into a CSV file for performance trend tracking and downstream analysis.
benchbox aggregate --input-dir <path> --output-file <path> [OPTIONS]Required:
--input-dir PATH: Directory containing result JSON files (searched recursively)--output-file PATH: Output CSV file path
Optional:
--benchmark TEXT: Filter results by benchmark name--platform TEXT: Filter results by platform name
The CSV output contains one row per result file with these columns:
| Column | Description |
|---|---|
timestamp |
Benchmark execution timestamp |
benchmark |
Benchmark name |
platform |
Platform name |
scale_factor |
Scale factor used |
total_time_s |
Total execution time in seconds |
geometric_mean_ms |
Geometric mean of query times (ms) |
p50_ms |
Median query time (ms) |
p95_ms |
95th percentile query time (ms) |
p99_ms |
99th percentile query time (ms) |
num_queries |
Number of successful queries |
file |
Source result filename |
# Aggregate all results in directory
benchbox aggregate --input-dir benchmark_runs/ --output-file trends.csv
# Filter by benchmark
benchbox aggregate \
--input-dir benchmark_runs/ \
--output-file tpch_trends.csv \
--benchmark tpch
# Filter by platform
benchbox aggregate \
--input-dir benchmark_runs/ \
--output-file duckdb_trends.csv \
--platform duckdb