Performance tracking dashboard for Bruno.
A static site that visualizes benchmark results across commits. Tests run in Bruno's CI on Ubuntu, macOS, and Windows — results are ingested here and rendered as trend charts.
- Dashboard — trend charts per benchmark, all OS overlaid, switchable metrics (mean, median, p90, p99, etc.)
- Docs — how the system works, data format, and how to add new benchmarks
- Ingestion — fully autonomous script that discovers suites and OS from GitHub Actions artifacts
Serve locally:
python3 -m http.server 8090
Open http://localhost:8090.
The ingestion workflow only needs a source repo and commit SHA. It finds the workflow run, downloads artifacts, discovers suites from filenames, and updates the manifest automatically.
Manual trigger: Actions → Ingest Benchmark Results → Run workflow → provide repo and commit SHA.
Automatic trigger: Bruno's CI sends a repository_dispatch event with the repo and commit SHA.
├── index.html # Dashboard
├── docs.html # Documentation
├── assets/
│ ├── style.css # Shared styles (dark/light themes)
│ ├── app.js # Dashboard logic (ECharts)
│ ├── docs.css # Docs page styles
│ └── icons.svg # SVG sprite
├── data/
│ ├── manifest.json # Auto-populated suite registry
│ └── {suite}/{os}.json # Historical data (one per OS per suite)
├── scripts/
│ └── ingest.js # Autonomous ingestion script
└── .github/workflows/
└── ingest.yml # Ingestion workflow
- Write
tests/benchmarks/{name}/{name}.bench.tsin the Bruno repo - Push to
main— results are uploaded as artifacts - Trigger ingestion with the commit SHA
- The dashboard picks it up automatically
No manual config needed. The ingestion script auto-registers new suites in manifest.json.