Skip to content

[ZEPPELIN-6668] Add notebook route benchmark contract - #5484

Open
voidmatcha wants to merge 2 commits into
apache:masterfrom
voidmatcha:ZEPPELIN-6668-notebook-benchmark
Open

voidmatcha wants to merge 2 commits into
apache:masterfrom
voidmatcha:ZEPPELIN-6668-notebook-benchmark

Conversation

@voidmatcha

@voidmatcha voidmatcha commented Sep 14, 2026

Copy link
Copy Markdown
Member

What is this PR for?

Add a reproducible benchmark contract for the notebook route, without committing baseline numbers (a follow-up records them).

  • Fixture: 100 paragraphs (80 TEXT, 10 TABLE, 10 collapsed), pinned by SHA-256
  • Ready condition: action bar visible, 100 paragraph containers, first Monaco editor attached
  • Runs: 10 cold (new context) and 10 warm (after one unrecorded prime), with raw samples, median, and p95
  • Bundles: raw and gzip sizes of the Angular entry chunks and React remoteEntry.js

Runtime metrics cover the Angular route only. The benchmark is excluded from the normal E2E run.

Most of the diff (3,319 of 3,957 added lines) is the fixture JSON. It is data, pinned by SHA-256 and checked for composition by validateFixture, so it does not need a line-by-line review. The code to review is about 590 lines under e2e/performance/, e2e/models/notebook-performance-page.ts, test/notebook-baseline.spec.ts and playwright.performance.config.js.

What type of PR is it?

Improvement

Todos

  • Add a hash-pinned benchmark fixture
  • Add the Playwright performance runner
  • Validate the benchmark contract with unit tests

What is the Jira issue?

ZEPPELIN-6668

How should this be tested?

cd zeppelin-web-angular
npm run test:shell -- test/notebook-baseline.spec.ts
# against an isolated Zeppelin serving the `npm run build` output
PLAYWRIGHT_BASE_URL=http://localhost:8080 PERF_NOTEBOOK_DISPOSABLE=1 PERF_NOTEBOOK_DRY_RUN=1 npm run perf:notebook-baseline

A local dry run passes (1 cold + 1 warm, every summary field recorded). Use localhost: the server rejects a 127.0.0.1 WebSocket origin unless zeppelin.server.allowed.origins is set.

Screenshots (if appropriate)

N/A

Questions:

  • Does the license files need to update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? Yes - e2e/performance/README.md

@voidmatcha
voidmatcha marked this pull request as ready for review September 14, 2026 17:33
@voidmatcha
voidmatcha force-pushed the ZEPPELIN-6668-notebook-benchmark branch 7 times, most recently from 6128bd9 to df3fc8a Compare September 17, 2026 22:57
@voidmatcha
voidmatcha force-pushed the ZEPPELIN-6668-notebook-benchmark branch from 0d559d4 to 2caa42c Compare September 20, 2026 02:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant