Load driver + report aggregator for the Crabka vs Strimzi benchmark harness on Kubernetes.
Scenarios describe a target Kafka stack, a workload shape, and optional
disturbance windows. The driver applies the scenario to Kubernetes, runs
the producer/consumer load, samples Prometheus, and writes a RunOutput
JSON artifact. The report binary reads those artifacts back and renders
the side-by-side Markdown summary used in benchmark reports.
The crate ships two binaries:
crabka-bench-driver— runs one scenario against one Kafka stack (Crabka or Strimzi/Kafka), captures throughput / latency / disturbance data, queries Prometheus for resource usage, and writes a singleRunOutputJSON file.crabka-bench-report— walks a directory ofRunOutputfiles, groups them by scenario name, and emits a side-by-side Markdown summary.
Command-line workflow
crabka-bench-driver \
--scenario bench/scenarios/steady_1p1r.toml \
--stack crabka \
--namespace kafka-bench \
--out runs/crabka-steady.json
crabka-bench-report --input runs --out report.md
Programmatic report aggregation
use std::path::Path;
use crabka_bench_driver::report;
# fn run() -> Result<(), Box<dyn std::error::Error>> {
let markdown = report::render_markdown(Path::new("runs"), true)?;
std::fs::write("report.md", markdown)?;
# Ok(())
# }