Part of #151.
Goal. A versioned, arch-segmented, searchable result store committed to goceleris/docs, optimised for an interactive dashboard.
Proposed layout:
results/
index.json # manifest: versions → dates → arches → run-ids → file pointers + headline numbers
latest/ # copy of newest version's newest date
v1.4.12/
20260530/
x86_64/
summary.json # aggregates per (scenario×server): rps, latency pctls, RSS, CPU, GC
timeseries.json.gz # per-second rps/p99/errors/RSS over each run (gzipped, lazy-loaded)
histograms.json.gz # merged HdrHistograms (base64) for exact-percentile recompute
env.json # kernel, go, cpu, NUMA, compile flags
arm64/ ...
run-2/ run-3/ ... # when a release triggers back-to-back N runs (#170)
Decisions to lock:
- Arch leaf naming
x86_64 / arm64 (migrate the existing x86/arm64 data + index.json + environment.architecture).
latest/ = copy of newest (dumb-client simple).
- Split summary (small, always loaded) from timeseries/histograms (large, gzipped, on-demand) so the dashboard stays fast.
index.json schema drives 'browse by latest / version / arch / date / run' without reading every file.
Acceptance. Documented layout + index.json schema + migration of the existing v1.0.0 data to the new naming.
Refs: docs results/ (current index.json, latest/, v1.0.0/), report/schema.go.
Part of #151.
Goal. A versioned, arch-segmented, searchable result store committed to goceleris/docs, optimised for an interactive dashboard.
Proposed layout:
Decisions to lock:
x86_64/arm64(migrate the existingx86/arm64data +index.json+environment.architecture).latest/= copy of newest (dumb-client simple).index.jsonschema drives 'browse by latest / version / arch / date / run' without reading every file.Acceptance. Documented layout +
index.jsonschema + migration of the existingv1.0.0data to the new naming.Refs: docs
results/(currentindex.json,latest/,v1.0.0/),report/schema.go.