Skip to content

feat(load-test): publish benchmark load-test reports normally#186

Draft
niran wants to merge 2 commits into
mainfrom
niran/load-test-reports
Draft

feat(load-test): publish benchmark load-test reports normally#186
niran wants to merge 2 commits into
mainfrom
niran/load-test-reports

Conversation

@niran
Copy link
Copy Markdown
Contributor

@niran niran commented May 16, 2026

Summary

  • Make the load-test payload write a normal load-test JSON report to output/load-tests/<network>/<timestamp>.json (network resolved from BASE_BENCH_LOAD_TEST_NETWORK, the payload's network field, or a chain-ID fallback map)
  • Add graceful load-test shutdown so the sequencer can drain remaining transactions before stopping
  • Add batch JSON-RPC capture and flashblocks URL propagation for complete load-test output

Tests

  • go test ./...
  • git diff --check

Pairs with https://coinbase.ghe.com/protocols/base-benchmarking/pull/63.

@cb-heimdall
Copy link
Copy Markdown
Collaborator

cb-heimdall commented May 16, 2026

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

niran added 2 commits May 15, 2026 22:37
… runs

Wire the load-test payload worker to write a JSON result file on graceful
shutdown and surface it in the report UI. After the benchmark window ends
the runner sends SIGINT to the load-test binary and continues proposing
settlement blocks until the worker exits (up to 90s), giving the binary
time to flush its result. The output path is stored as an artifact in
RunResult and shown as a "Load test" link in the run list that opens a
dedicated detail page.

Also fixes an inverted slices.Contains check in the importer that caused
required files to be silently skipped on error and optional files to abort
the import.
…k>/<timestamp>.json

Drop the benchmark-specific UI page and report-api route added in the previous
commit. Instead the load-test worker writes a normal load-test JSON report to
output/load-tests/<network>/<timestamp>.json, which the benchmarking uploader
can publish alongside regular benchmark runs.

Network is resolved from BASE_BENCH_LOAD_TEST_NETWORK env var, then the
payload's network field, then a chain-ID fallback map. The path is passed to
base-load-test via LOAD_TEST_OUTPUT. The worker now shuts down gracefully so
the sequencer can drain remaining transactions before stopping.

Also fixes an inverted slices.Contains guard in the importer that would have
returned an error for optional (rather than required) missing files.
@niran niran force-pushed the niran/load-test-reports branch from 96a452d to 475b734 Compare May 16, 2026 03:39
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.

2 participants