Skip to content

chore: simplify benchmark workflow and consolidate stats storage#41021

Merged
DDDDDanica merged 5 commits into
mainfrom
chore/benchmark-ci-refactor
Mar 19, 2026
Merged

chore: simplify benchmark workflow and consolidate stats storage#41021
DDDDDanica merged 5 commits into
mainfrom
chore/benchmark-ci-refactor

Conversation

@DDDDDanica

@DDDDDanica DDDDDanica commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Description

  • dapp-page-load-benchmark and store-benchmark-stats moved from main.yml into run-benchmarks.yml as inline jobs
  • store-benchmark-stats now correctly waits on all three benchmark jobs (benchmarks, benchmarks-webpack-perf, dapp-page-load-benchmark) as siblings, previously it ran in parallel with the dapp benchmark
  • Added missing actions/upload-artifact step to benchmarks-webpack-perf so its results are collected by store-benchmark-stats
  • Sentry reporting (send-to-sentry.ts) restricted to main/release/* pushes only

Open in GitHub Codespaces

Changelog

CHANGELOG entry: null

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Screenshot 2026-03-19 at 14 07 33 Screenshot 2026-03-19 at 14 07 45

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
CI benchmark execution and reporting flow is refactored (jobs moved/rewired and new artifact publishing), which can break benchmark visibility or gating if misconfigured, but it doesn’t touch production code.

Overview
Moves dapp-page-load-benchmark and store-benchmark-stats out of main.yml and into run-benchmarks.yml, consolidating benchmark execution and stats publishing under the called workflow.

Updates benchmark results handling so store-benchmark-stats waits for all benchmark jobs (including webpack perf and dapp page-load) and can collect results via newly uploaded benchmark-*.json artifacts, then commits both performance and page-load data to extension_benchmark_stats on main/release/* pushes.

Restricts benchmark Sentry reporting to main/release/* and wires EXTENSION_BENCHMARK_STATS_TOKEN through the workflow call secrets.

Written by Cursor Bugbot for commit bada820. This will update automatically on new commits. Configure here.

@DDDDDanica DDDDDanica self-assigned this Mar 18, 2026
@DDDDDanica DDDDDanica added the team-extension-platform Extension Platform team label Mar 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

Comment thread .github/workflows/run-benchmarks.yml Outdated
Comment thread .github/workflows/run-benchmarks.yml
Comment thread .github/workflows/run-benchmarks.yml
@metamaskbotv2

metamaskbotv2 Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor
Builds ready [35f46a6]
⚡ Performance Benchmarks
👆 Interaction Benchmarks

⚠️ Missing data: chrome/browserify/interactionUserActions

🔌 Startup Benchmarks

⚠️ Missing data: chrome/browserify/startupStandardHome, chrome/browserify/startupPowerUserHome

🧭 User Journey Benchmarks

⚠️ Missing data: chrome/browserify/userJourneyOnboardingImport, chrome/browserify/userJourneyOnboardingNew, chrome/browserify/userJourneyAssets, chrome/browserify/userJourneyAccountManagement, chrome/browserify/userJourneyTransactions

🌐 Dapp Page Load Benchmarks

Current Commit: 35f46a6 | Date: 3/18/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±54ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 740ms (±52ms) 🟢 | historical mean value: 730ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 81ms (±10ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 54ms 1.02s 1.33s 1.15s 1.33s
domContentLoaded 740ms 52ms 713ms 1.01s 810ms 1.01s
firstPaint 81ms 10ms 64ms 156ms 96ms 156ms
firstContentfulPaint 81ms 10ms 64ms 156ms 96ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: 14 Bytes (0%)

@DDDDDanica DDDDDanica force-pushed the chore/benchmark-ci-refactor branch from 35f46a6 to e4b0d73 Compare March 19, 2026 01:38
@DDDDDanica DDDDDanica dismissed a stale review March 19, 2026 02:04

spam

@metamaskbotv2

metamaskbotv2 Bot commented Mar 19, 2026

Copy link
Copy Markdown
Contributor
Builds ready [e4b0d73]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account30427332518321325
total30427332518321325
Confirm Txconfirm_tx6062604160821660736082
total6062604160821660736082
Bridge User Actionsbridge_load_page24019929236260292
bridge_load_asset_picker25117430246293302
bridge_search_token73670976922733769
total1243122612701912701270
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup14721241199111115111681
load1218101116699812551388
domContentLoaded1211100316379612481383
domInteractive2918119202582
firstPaint161711245132201282
backgroundConnect21719829215220246
firstReactRender20135552127
initialActions106114
loadScripts101079714329510441181
setupStore1362751622
numNetworkReqs393187163180
Power User HomeuiStartup58972311146652448670510074
load13231158188914013511645
domContentLoaded13031153184113313311621
domInteractive38201853233118
firstPaint236791302175285364
backgroundConnect228934911409218336555623
firstReactRender25176062737
initialActions104113
loadScripts1074939154912410781366
setupStore1675671730
numNetworkReqs1498437046162260
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2202182222222222
srpButtonToSrpForm96949819698
confirmSrpToPwForm24232402424
pwFormToMetricsScreen16161601616
metricsToWalletReadyScreen16161701617
doneButtonToHomeScreen62861764010640640
openAccountMenuToAccountListLoaded30072902319812731233198
total4009388741228840724122
Onboarding New WalletcreateWalletToSocialScreen2192182190219219
srpButtonToPwForm1101101111110111
createPwToRecoveryScreen989099
skipBackupToMetricsScreen40374324243
agreeButtonToOnboardingSuccess17161811718
doneButtonToAssetList50948153523527535
total90287792621919926
Asset DetailsassetClickToPriceChart674587198687
total674587198687
Solana Asset DetailsassetClickToPriceChart1075114735138147
total1075114735138147
Import Srp HomeloginToHomeScreen23242186255013023822550
openAccountMenuAfterLogin653886177786
homeAfterImportWithNewWallet2354232324083824082408
total4703463847745647744774
Send TransactionsopenSendPageFromHome442468206868
selectTokenToSendFormLoaded372457124357
reviewTransactionToConfirmationPage12631069148615413961486
total13441149157815814711578
SwapopenSwapPageFromHome1451391568156156
fetchAndDisplaySwapQuotes269326842708926982708
total2849282528822128482882
🌐 Dapp Page Load Benchmarks

Current Commit: e4b0d73 | Date: 3/19/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±45ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 737ms (±63ms) 🟢 | historical mean value: 728ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 92ms (±129ms) 🟢 | historical mean value: 86ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 45ms 1.02s 1.38s 1.07s 1.38s
domContentLoaded 737ms 63ms 713ms 1.31s 756ms 1.31s
firstPaint 92ms 129ms 64ms 1.37s 88ms 1.37s
firstContentfulPaint 92ms 129ms 64ms 1.37s 88ms 1.37s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.07 KiB (0.04%)
  • ui: 6.34 KiB (0.07%)
  • common: 325 Bytes (0%)

itsyoboieltr
itsyoboieltr previously approved these changes Mar 19, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Comment thread .github/workflows/run-benchmarks.yml Outdated
Comment thread .github/workflows/run-benchmarks.yml
… stats storage dropped release branch support
@sonarqubecloud

Copy link
Copy Markdown

@metamaskbotv2

metamaskbotv2 Bot commented Mar 19, 2026

Copy link
Copy Markdown
Contributor
Builds ready [bada820]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account2842812914282291
total2842812914282291
Confirm Txconfirm_tx603860376040160406040
total603860376040160406040
Bridge User Actionsbridge_load_page20517823322220233
bridge_load_asset_picker26625528412269284
bridge_search_token7617527687768768
total1239120412853012401285
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup13721139192411314061566
load1135943162110211711310
domContentLoaded112793915899911641287
domInteractive2716106202388
firstPaint187621610231203334
backgroundConnect19617726114197226
firstReactRender19115062033
initialActions104112
loadScripts9487591394979851106
setupStore1373351425
numNetworkReqs403191173486
Power User HomeuiStartup61702198167002890669413864
load13171143171513113641656
domContentLoaded12981138171012713421615
domInteractive40192914034139
firstPaint228871269173286376
backgroundConnect259933814697289434249373
firstReactRender24174142631
initialActions105113
loadScripts1072936145912011181359
setupStore1574471729
numNetworkReqs18510544452216269
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2202202200220220
srpButtonToSrpForm95949619696
confirmSrpToPwForm23222412324
pwFormToMetricsScreen16161711717
metricsToWalletReadyScreen16161701617
doneButtonToHomeScreen56453859522576595
openAccountMenuToAccountListLoaded30452920333116031103331
total40233827429917640914299
Onboarding New WalletcreateWalletToSocialScreen2202162253223225
srpButtonToPwForm1101091100110110
createPwToRecoveryScreen999099
skipBackupToMetricsScreen39393903939
agreeButtonToOnboardingSuccess17171701717
doneButtonToAssetList58649669677639696
total98289210907610291090
Asset DetailsassetClickToPriceChart82461353195135
total82461353195135
Solana Asset DetailsassetClickToPriceChart1194220655138206
total1194220655138206
Import Srp HomeloginToHomeScreen2419230625529725082552
openAccountMenuAfterLogin61536866768
homeAfterImportWithNewWallet1532258238195823622381
total40122716494392447374943
Send TransactionsopenSendPageFromHome29283002930
selectTokenToSendFormLoaded30223763537
reviewTransactionToConfirmationPage1052876137920011901379
total1110941143119412411431
SwapopenSwapPageFromHome987911614106116
fetchAndDisplaySwapQuotes2696268227231527022723
total2794276228282628172828
🌐 Dapp Page Load Benchmarks

Current Commit: bada820 | Date: 3/19/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±48ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 736ms (±63ms) 🟢 | historical mean value: 732ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 93ms (±127ms) 🟢 | historical mean value: 85ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 48ms 1.02s 1.39s 1.07s 1.39s
domContentLoaded 736ms 63ms 711ms 1.29s 754ms 1.29s
firstPaint 93ms 127ms 64ms 1.36s 92ms 1.36s
firstContentfulPaint 93ms 127ms 64ms 1.36s 92ms 1.36s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.77 KiB (0.05%)
  • ui: 18.93 KiB (0.22%)
  • common: 1.82 KiB (0.02%)

@DDDDDanica DDDDDanica added this pull request to the merge queue Mar 19, 2026
retention-days: 7
if-no-files-found: ignore

dapp-page-load-benchmark:

@gauthierpetetin gauthierpetetin Mar 19, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we delete ./.github/workflows/dapp-page-load-benchmark.yml to avoid code duplication?
Or is it still needed for something?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh good point gonna address in another PR !!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merged via the queue into main with commit 0e7ab5c Mar 19, 2026
395 of 397 checks passed
@DDDDDanica DDDDDanica deleted the chore/benchmark-ci-refactor branch March 19, 2026 15:46
@github-actions github-actions Bot locked and limited conversation to collaborators Mar 19, 2026
@metamaskbot metamaskbot added the release-13.24.0 Issue or pull request that will be included in release 13.24.0 label Mar 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.24.0 Issue or pull request that will be included in release 13.24.0 size-M team-extension-platform Extension Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants