aggregate - Aggregate Results
Aggregate multiple benchmark result files into a CSV file for performance trend tracking and downstream analysis.
Basic Syntax
benchbox aggregate --input-dir <path> --output-file <path> [OPTIONS]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
Output Format
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 |
Usage Examples
The first command aggregates all results in a directory. The second filters by benchmark, and the third filters by platform.
benchbox aggregate --input-dir benchmark_runs/ --output-file trends.csv
benchbox aggregate \ --input-dir benchmark_runs/ \ --output-file tpch_trends.csv \ --benchmark tpch
benchbox aggregate \ --input-dir benchmark_runs/ \ --output-file duckdb_trends.csv \ --platform duckdb