Run your own harness
BenchDB does not run benchmarks. Use any framework, on CI runners, dedicated machines, or a laptop, and write each result as JSON.
BenchDB
Your harness writes JSON and the benchdb CLI uploads it.
BenchDB keeps each benchmark's history on each machine, charts it in a
dashboard, and reports regressions on pull requests. It is built for teams
that benchmark every commit or release.
Any language that writes JSON · Go and PostgreSQL · MIT license
How it works
BenchDB does not run benchmarks. Use any framework, on CI runners, dedicated machines, or a laptop, and write each result as JSON.
benchdb results submit sends each result with its run, commit, machine, and unit. If an upload fails, rerun it on the saved files instead of rerunning the benchmark.
The dashboard charts each benchmark per machine. benchdb ci report flags a result only when it falls outside the benchmark's recent range, moves more than 2% from the baseline, and is larger than a minimum change you can set per benchmark (30 ms for timings by default).
Result history
Each result stores its benchmark case, run, commit, machine, unit, and raw values. From a regression you can open the result, its run, and its history without searching CI logs.
Browse and compare results →Interfaces
Submit results, run CI reports, compare two results, list series, and export a history as CSV.
Call the HTTP API from any language or generate a client from the OpenAPI document. A Go client ships in the repository.
Browse runs, benchmarks, per-machine trends, single results, and comparisons.
Schedule benchdb admin alerts evaluate and deliver in your own job runner. Alerts go to webhooks, Slack, GitHub, or email.
Documentation
Quickstart