janhoy opened a new issue, #99:
URL: https://github.com/apache/solr-orbit/issues/99

   ### Is your feature request related to a problem? Please describe
   
   Apache Solr's performance story is currently anecdotal. Regressions get 
found by users in production, months after the commit that caused them, when 
the bisect range is hundreds of commits wide and whoever wrote the change has 
moved on.
   
   We want a public page that answers, at a glance, the question nobody can 
answer today: **is Solr getting faster or slower, and when did it change?** Per 
workload, how indexing throughput and query latency have moved across Solr 
versions — and from a suspicious dip, click-through to the full report behind 
it: the exact Solr commit, JVM build, hardware, heap, GC, shard layout, and 
workload revision that produced it.
   
   The model is [Lucene Nightly 
Benchmarks](https://benchmarks.mikemccandless.com), which has quietly been one 
of the most valuable artifacts in the Lucene project for over a decade.
   
   <img width="1490" height="986" alt="Image" 
src="https://github.com/user-attachments/assets/ced4bf7f-8111-4672-905e-7cf235eb170c";
 />
   
   ### Describe the solution you'd like
   
   `reportr`: a Python CLI bundled in this repo that reads the enriched JSON 
reports written by `launchr` (#98) and emits a **static** site — no backend, no 
database, no runtime dependency. The SPA shell ships inside reportr itself, so 
updating the tool updates the site's frontend; charts are Apache ECharts, 
vendored rather than CDN-loaded. Deployed to `solr.apache.org/benchmarks/`.
   
   ```
   reportr build --local ./benchmark-results --serve     # local development, 
charts at localhost:8080
   reportr build --config reportr.yaml                   # production, reads 
from the bucket
   reportr build --full                                  # ignore state, 
reprocess everything
   ```
   
   Four choices worth agreeing on before the PRs:
   
   - **The x-axis is the version timeline, not the run date.** Points sit at 
the date of the commit or release tag they measure, so re-benchmarking an old 
version lands in its correct historical position, and `main` and `branch_10x` 
are separate lines. A line is identified by version kind, branch, hardware 
profile *and* cluster config — so the site never silently compares a 3-node EC2 
result against a laptop run.
   - **Annotations are curated by hand** in an `annotations.yaml` ("upgraded to 
r7iz.4xlarge", "SOLR-12345 facet regression"). No automated regression 
detection on the site: a human notices the dip, investigates, and writes down 
what they found.
   - **Builds are incremental**, so a nightly run appends rather than 
reprocessing years of history. An incremental build and a `--full` rebuild must 
produce identical output.
   - **Static per-workload JSON data files** as the first data backend. Good 
for roughly the first couple of thousand runs; the escape route is Parquet plus 
DuckDB at build time, which does not change the website.
   
   First PR is small and local: read reports from a directory, emit 
per-workload JSON, render one trend chart with click-through, serve on 
localhost — iterable on a laptop against real `launchr` output. Retention, 
annotation compilation, the dashboard overview, and automated deployment follow.
   
   ### Describe alternatives you've considered
   
   Using some pre-made reporting application
   
   ### Additional context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to