Skip to content

docs: performance rules for contributors - #797

Merged
szibis merged 2 commits into
mainfrom
docs/contributing-performance-rules
Oct 21, 2026
Merged

szibis merged 2 commits into
mainfrom
docs/contributing-performance-rules

Conversation

@szibis

@szibis szibis commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

This adds a "Performance Rules" section to CONTRIBUTING.md, stating the performance bar contributions are held to, how the repository measures it, and how to prioritise gaps. Every statement was checked against the measurement code (bench/ab/daily.py, pr_smoke.py, selection.py, perf-ab.yaml, pr-quality-report.yaml, check_quality_gate.py, conformance/reports/performance.md, gaps.md).

The section

  • The bar:

    • every measured query shape and range at least as fast as Loki, on the first answer and on a repeat, with Loki's result;
    • refresh as a goal, measured with the A/B's opt-in --refresh-s;
    • low, bounded proxy CPU and memory, never bought with VictoriaLogs' CPU or memory.
  • How it is measured:

    • Daily run: the last release, main and Loki, cold and warm p50 per shape and range.
    • Pull-request A/B: the merge-base, the branch and Loki on the sets the change touches, plus the control smoke subset, or the whole control set for cmd/, go.mod and go.sum. It fails on a broken shape, a slowdown confirmed by a re-run, or a new difference from Loki.
    • Resources:
      • VictoriaLogs CPU is sampled during the A/B;
      • proxy CPU and memory come from the Go benchmarks and the load test in pr-quality-report, gated by check_quality_gate.py;
      • VictoriaLogs memory is the author's to report where a change could affect it.
  • Priority:

    1. errors where Loki answers;
    2. results that differ from Loki;
    3. a slower first answer;
    4. a slower repeated answer.

    Largest gap first, using performance.md, the daily trend and gaps.md.

CHANGELOG: a Documentation entry.

Not applicable: documentation only, so e2e vs Loki, the Grafana range matrix, visual proof, A/B, benchstat and the load test do not apply. Changelog gate ok.

@szibis
szibis merged commit 689bc09 into main Oct 21, 2026
21 checks passed
@szibis
szibis deleted the docs/contributing-performance-rules branch October 21, 2026 17:55
@github-actions github-actions Bot added size/M Medium change scope/docs Documentation documentation Documentation labels Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR Quality Report

Compared against base branch main.

Coverage and tests

Signal Base PR Delta
Test count 11763 11763 0
Coverage 88.3% 88.3% 0.0% (stable)

Compatibility

Track Base PR Delta
Loki API 100.0% 11/11 (100.0%) 0.0% (stable)
Logs Drilldown 100.0% 17/17 (100.0%) 0.0% (stable)
VictoriaLogs 100.0% 11/11 (100.0%) 0.0% (stable)

Performance smoke

Performance smoke was skipped for this PR because no perf-sensitive paths changed.

State

  • Coverage, compatibility, and sampled performance are reported here from the same PR workflow.
  • This is a delta report, not a release gate by itself. Required checks still decide merge safety.
  • Performance smoke was intentionally skipped because no perf-sensitive paths changed in this PR.
  • Delta states use the same noise guards as the quality gate (percent + absolute + low-baseline checks), so report labels match merge-gate behavior.

szibis added a commit that referenced this pull request Oct 21, 2026
The release workflow could not create the metadata branch for v2.24.1
(it was cut from #794 while main had already moved on). Materialize the
published 2.24.1 notes as the [2.24.1] section (#792's CI entry and
#794's Security entry, exactly as released) and set the chart to 2.24.1;
[Unreleased] keeps the entries merged since (#795, #796, #797).

Co-authored-by: szibis <szibis@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation scope/docs Documentation size/M Medium change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant