WiP admin: Add paging UI to admin stats page.#19413
Closed
jmarantz wants to merge 6 commits intoenvoyproxy:mainfrom
Closed
WiP admin: Add paging UI to admin stats page.#19413jmarantz wants to merge 6 commits intoenvoyproxy:mainfrom
jmarantz wants to merge 6 commits intoenvoyproxy:mainfrom
Conversation
Signed-off-by: Joshua Marantz <jmarantz@google.com>
Signed-off-by: Joshua Marantz <jmarantz@google.com>
Signed-off-by: Joshua Marantz <jmarantz@google.com>
Signed-off-by: Joshua Marantz <jmarantz@google.com>
Signed-off-by: Joshua Marantz <jmarantz@google.com>
Contributor
Author
|
@ggreenway FYI |
Signed-off-by: Joshua Marantz <jmarantz@google.com>
Contributor
Author
|
I'm closing this as an existing perf test revealed an extreme slowdown due to the transition from flat_hash_set to btree_set. The containers themselves were not the issue, but btree_set forces a lot more comparisons and that becomes the bottleneck. I am back to focusing on scope as a way to have a UI iterate to peruse millions of stats without CPU hiccups or long-held locks. |
Contributor
Author
|
Note -- if this PR is ever revived it will be much easier now, as stats_request.cc supports an efficient ordered traversal through all stats. It's used now for chunked output but the chunks could be turned into pages. |
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.
Commit Message: Proof-of-concept mega PR to make it possible to efficiently page through stats. It incorporates a bunch of concepts which should be broken out into their own PRs and reviewed:
The benefit is that a user can visit the stats page for a very large configuration without blowing up Envoy CPU/Memory or their browser.
The PR still has a scaling problem that if you use a regex that doesn't match anything, the admin page will iterate over every stat, consuming potentially half a second of CPU on the main thread if there are 1M stats (I need to re-measure). We can make the regex filtering smarter if it's a prefix match (e.g. ^foo) by constraining the search using the set's lower_bound and upper_bound APIs. However I think this will still be much better than it was because it won't need to buffer anything. The current impl starts by making a giant vector of all counters.
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
Fixes: #18675
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]