[RUM-12600] Continuous Benchmarking#3927
Merged
amortemousque merged 7 commits intomainfrom Nov 18, 2025
Merged
Conversation
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage 🔗 Commit SHA: 9bac9cf | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
f8d98a3 to
036f257
Compare
Bundles Sizes Evolution
🚀 CPU Performance
🧠 Memory Performance
|
Comment on lines
+4
to
+5
| test.describe('benchmark', () => { | ||
| createBenchmarkTest('heavy').run(async (page, takeMeasurements) => { |
Member
There was a problem hiding this comment.
💭 thought: I think there are more idiomatic ways to declare common test logic in playwright using fixtures. But personally I don't mind your approach, as I find it more explicit than using playwright magic.
4a7b425 to
9d4e4fb
Compare
0fb5c4c to
915b4f4
Compare
rtrieu
approved these changes
Nov 12, 2025
Contributor
rtrieu
left a comment
There was a problem hiding this comment.
approved with some very minor suggestions!
test/apps/react-heavy-spa/README.md
Outdated
|
|
||
| ### URL Parameters | ||
|
|
||
| Customize RUM configuration via URL params: |
Contributor
There was a problem hiding this comment.
Suggested change
| Customize RUM configuration via URL params: | |
| Customize RUM configuration using the following URL params: |
test/apps/react-heavy-spa/README.md
Outdated
| @@ -0,0 +1,196 @@ | |||
| # Heavy SPA Benchmark - Datadog Web UI | |||
|
|
|||
| A complex, JavaScript-heavy single-page application built with React + TypeScript for performance benchmarking of Datadog Browser SDK features. | |||
Contributor
There was a problem hiding this comment.
Suggested change
| A complex, JavaScript-heavy single-page application built with React + TypeScript for performance benchmarking of Datadog Browser SDK features. | |
| This is a complex, JavaScript-heavy single-page application built with React + TypeScript for performance benchmarking the Datadog Browser SDK. |
1b817fa to
f067ba4
Compare
f067ba4 to
7dbd90a
Compare
7dbd90a to
76bc292
Compare
eea3c61 to
73df52a
Compare
4eab6b5 to
b909240
Compare
b909240 to
d80a83a
Compare
BenoitZugmeyer
approved these changes
Nov 17, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
We want to monitor the impact of performance-intensive features like Replay and Profiling.
This PR introduces benchmark tests to measure their effect.
Measurements
/performances, except it only collects the total consumption.Scenarios
Run two scenarios on two applications:
This scenario runs under four different configurations:
Scheduling
A new
performance-benchmarkGitLab job runs every 30 minutes.Each run executes the tests 15 times.
Visualization
Local: displays a summary table in the console

Datadog dashboard

Changes
test/app/react-heavy-spa: app to benchmark test runstest/performance: Playwright performance benchmarkse2e/lib/framework/httpServertotest/libfor reuse in perf testsperformance-benchmarkCI jobI haven’t replaced
/performancesyet, but if we agree on this approach, I’ll remove it in a follow-up PR.Test instructions
Checklist