AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Continuous performance testing with comparable benchmark histories, fleet-aware trends, and CI regression reports
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
BenchDB is a self-hosted results system for continuous performance testing.
Bring any benchmark harness, submit structured JSON, and get comparable
histories, fleet-aware trends, and CI regression reports.
Learn how it works at benchdb.io or start with the
quickstart.
A benchmark result is more than a timestamp and a number. To decide whether a
change helped or hurt, you also need to know:查看完整 README ↗BenchDB is a self-hosted server for benchmark results. Your benchmark harness
writes JSON, the benchdb CLI uploads it, and BenchDB keeps the history of
each benchmark on each machine. The dashboard shows trends and comparisons, and
benchdb ci report tells a pull request whether it made a benchmark slower.
BenchDB works with benchmarks in any language that can write JSON. It does not run or schedule benchmarks.
Start with the quickstart, or read the documentation for the full reference.
A benchmark number alone cannot tell you whether a change helped. Each BenchDB result also records the commit, the run, the machine, the unit, and the raw observations. BenchDB groups results that share a benchmark case, context, machine, and repository into one series. It scores each new result against that series' history. CI reports also compare it with the matching result from a baseline run. Concepts defines these terms and the status rules.
BenchDB fits teams that benchmark every commit or release, run benchmarks on
more than one machine, and want CI to flag regressions. If an upload fails,
rerun benchdb results submit on the saved files. The benchmark itself does
not have to run again.
You probably do not need it for a one-off timing on your laptop. It is not a general metrics, logs, or tracing system.
Grafana time-series panels plot timestamped metrics from many data sources, which suits service health and machine telemetry. Grafana can plot benchmark numbers too, but you build the storage model, queries, and comparison rules yourself. Grafana's k6 integration is one example.
BenchDB has those benchmark rules built in. It tracks commit and run identity, keeps machines apart, selects a baseline, classifies regressions, and writes CI reports. Use Grafana to ask what a system is doing over time. Use BenchDB to ask whether a code change made a benchmark slower. You can run both.
benchdb CLI, built into one binarysdk/go/benchdbThe Go module is go.kenn.io/benchdb. make build needs Go, Bun, and a C/C++
compiler and writes bin/benchdb. Go builds use CGO_ENABLED=1.
make dev needs Docker and starts a local server with demo data at
http://localhost:8080. The quickstart shows both.
The server requires a PostgreSQL URL in BENCHDB_DB_URL and a persistent local
archive directory in BENCHDB_DATA_DIR. make build downloads the matching
DuckDB PostgreSQL extension into .cache/duckdb/extensions; set
BENCHDB_DUCKDB_EXTENSION_DIR to that directory when running bin/benchdb.
make dev sets up its own archive and extensions under var/dev-data.
Back up the archive together with PostgreSQL. See the
operations guide for deployment and recovery
instructions.
Contributions are welcome, including pull requests from forks. Push a feature
branch to your fork and open a pull request against the main branch of
kenn-io/benchdb. You do not need write access to this repository.
The contributing guide covers the fork workflow, local checks, and documentation builds. Coding agents should also read AGENTS.md.
BenchDB is under active development. Its command and storage interfaces can change before the first stable release.
BenchDB began as an independent fork of the Go rewrite on the
experimental-v2 branch of Conbench.
We thank the Conbench contributors for that code and for the project's original
idea of language-independent continuous benchmarking.
BenchDB is now developed independently and has a different product direction. See NOTICE.md and LICENSE for attribution and license terms.