Skip to content

aggregate - Aggregate Results

Aggregate multiple benchmark result files into a CSV file for performance trend tracking and downstream analysis.

Basic Syntax

Terminal window
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:

ColumnDescription
timestampBenchmark execution timestamp
benchmarkBenchmark name
platformPlatform name
scale_factorScale factor used
total_time_sTotal execution time in seconds
geometric_mean_msGeometric mean of query times (ms)
p50_msMedian query time (ms)
p95_ms95th percentile query time (ms)
p99_ms99th percentile query time (ms)
num_queriesNumber of successful queries
fileSource result filename

Usage Examples

The first command aggregates all results in a directory. The second filters by benchmark, and the third filters by platform.

Terminal window
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
  • report - Historical analysis and trend detection from the result database
  • results - View individual benchmark results