Skip to content

docs: benchmark dashboard exploration tool#6399

Merged
cnvergence merged 4 commits intoenvoyproxy:mainfrom
missBerg:benchmark-dashboard
Jun 25, 2025
Merged

docs: benchmark dashboard exploration tool#6399
cnvergence merged 4 commits intoenvoyproxy:mainfrom
missBerg:benchmark-dashboard

Conversation

@missBerg
Copy link
Contributor

What type of PR is this?
Add Benchmark Dashboard Tool and JS Tools Directory
This PR adds a standalone JavaScript benchmark dashboard tool and establishes a /tools/ directory structure for future JS utilities.


What this PR does / why we need it:
This helps users discover and explore the existing benchmark report results current only available in markdown for each EG release.


Deployment Test URL: https://envoy-gateway-preview.netlify.app/tools/benchmark-report-explorer/

What's Added

  • Standalone Benchmark Dashboard: Interactive tool for visualizing EG performance data across versions at /tools/benchmark-report-explorer/
  • JS Tools Directory Structure: Creates /site/tools/ as the home for standalone JavaScript utilities
  • Hugo Partial Integration: New {{< benchmark-dashboard >}} shortcode for easy embedding in content pages
  • Release Benchmark Integration: Provides a dedicated space to surface benchmark reports for EG releases

Technical

  • Self-contained React/TypeScript tool that builds to Hugo static assets
  • Uses Shadow DOM for safe integration with the main site
  • Accessible at http://localhost:1313/tools/benchmark-report-explorer/
  • Hugo shortcode supports configuration via parameters (version, showHeader, class, etc.)

Value

  • Gives us a proper place to showcase performance data for each EG release
  • Establishes a pattern for adding more web hosted tools in the future
  • Helps users and contributors track performance trends over time
  • Easy to embed in any Hugo content page using the shortcode
  • This creates the foundation for surfacing benchmark data publicly and provides a scalable structure for additional JS-based tools.

Enhancements After This PR

  • Add link to tools directly from main page
  • Have the CI Benchmark Report generate output in JSON to integrate directly

Which issue(s) this PR fixes:
N/A

Release Notes: No

missBerg added 3 commits June 24, 2025 20:04
Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
@missBerg missBerg requested a review from a team as a code owner June 25, 2025 01:10
@codecov
Copy link

codecov bot commented Jun 25, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 70.78%. Comparing base (6f42531) to head (fe5e646).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6399      +/-   ##
==========================================
- Coverage   70.80%   70.78%   -0.03%     
==========================================
  Files         220      220              
  Lines       37132    37132              
==========================================
- Hits        26291    26283       -8     
- Misses       9300     9305       +5     
- Partials     1541     1544       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
@zhaohuabing
Copy link
Member

zhaohuabing commented Jun 25, 2025

This is amazing! @missBerg

@zhaohuabing zhaohuabing requested review from a team and zhaohuabing June 25, 2025 03:26
@zhaohuabing
Copy link
Member

I think the spike in EG’s max CPU usage in 1.4.1 might be an anomaly — I haven’t seen a similar pattern in other PRs.

v1.4.1

|Test Name                                                  |Envoy Gateway CPU (%) <br> min/max/means
|-                                                          |-                                       
|scaling up httproutes to 10 with 2 routes per hostname     |0.27 / 0.67 / 0.45                      
|scaling up httproutes to 50 with 10 routes per hostname    |0.40 / 4.33 / 0.97                      
|scaling up httproutes to 100 with 20 routes per hostname   |0.40 / 8.67 / 1.36                      
|scaling up httproutes to 300 with 60 routes per hostname   |0.47 / 79.87 / 3.90                     
|scaling up httproutes to 500 with 100 routes per hostname  |0.40 / 1.20 / 0.75                      
|scaling up httproutes to 1000 with 200 routes per hostname |0.13 / 1.13 / 0.80                      
|scaling down httproutes to 500 with 100 routes per hostname|0.67 / 5.67 / 1.33                      
|scaling down httproutes to 300 with 60 routes per hostname |0.67 / 46.53 / 4.41                     
|scaling down httproutes to 100 with 20 routes per hostname |0.80 / 38.20 / 5.63                     
|scaling down httproutes to 50 with 10 routes per hostname  |0.80 / 7.53 / 1.54                      
|scaling down httproutes to 10 with 2 routes per hostname   |0.80 / 3.47 / 1.14                      

https://github.com/envoyproxy/gateway/actions/runs/15848691881/job/44682066547?pr=6397

|Test Name                                                  |Envoy Gateway CPU (%) <br> min/max/means
|-                                                          |-                                       
|scaling up httproutes to 10 with 2 routes per hostname     |0.20 / 0.87 / 0.49                      
|scaling up httproutes to 50 with 10 routes per hostname    |0.40 / 3.53 / 1.06                      
|scaling up httproutes to 100 with 20 routes per hostname   |0.47 / 6.13 / 1.14                      
|scaling up httproutes to 300 with 60 routes per hostname   |0.47 / 14.46 / 2.44                     
|scaling up httproutes to 500 with 100 routes per hostname  |0.47 / 18.27 / 2.48                     
|scaling up httproutes to 1000 with 200 routes per hostname |0.60 / 39.60 / 4.62                     
|scaling down httproutes to 500 with 100 routes per hostname|0.60 / 30.80 / 3.71                     
|scaling down httproutes to 300 with 60 routes per hostname |0.60 / 14.40 / 2.14                     
|scaling down httproutes to 100 with 20 routes per hostname |0.60 / 13.73 / 2.10                     
|scaling down httproutes to 50 with 10 routes per hostname  |0.60 / 5.00 / 1.34                      
|scaling down httproutes to 10 with 2 routes per hostname   |0.60 / 3.47 / 1.07                      

https://github.com/envoyproxy/gateway/actions/runs/15834934850/job/44637109719?pr=6390

|Test Name                                                  |Envoy Gateway CPU (%) <br> min/max/means
|-                                                          |-                                       
|scaling up httproutes to 10 with 2 routes per hostname     |0.13 / 0.67 / 0.47                      
|scaling up httproutes to 50 with 10 routes per hostname    |0.27 / 3.80 / 0.92                      
|scaling up httproutes to 100 with 20 routes per hostname   |0.33 / 4.93 / 1.00                      
|scaling up httproutes to 300 with 60 routes per hostname   |0.47 / 18.13 / 2.34                     
|scaling up httproutes to 500 with 100 routes per hostname  |0.47 / 14.87 / 2.41                     
|scaling up httproutes to 1000 with 200 routes per hostname |0.53 / 34.53 / 3.80                     
|scaling down httproutes to 500 with 100 routes per hostname|0.53 / 27.27 / 3.35                     
|scaling down httproutes to 300 with 60 routes per hostname |0.60 / 13.87 / 2.09                     
|scaling down httproutes to 100 with 20 routes per hostname |0.60 / 10.47 / 1.80                     
|scaling down httproutes to 50 with 10 routes per hostname  |0.60 / 4.20 / 1.20                      
|scaling down httproutes to 10 with 2 routes per hostname   |0.60 / 2.93 / 1.02        

@zirain
Copy link
Member

zirain commented Jun 25, 2025

/retest

Copy link
Member

@cnvergence cnvergence left a comment

Choose a reason for hiding this comment

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

Awesome 🎉

@cnvergence cnvergence merged commit d809446 into envoyproxy:main Jun 25, 2025
48 of 50 checks passed
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.

4 participants