admin: new histogram rendering needs a few tweaks
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 428
Description
while the histograms looked data on test data, and sample data from relatively lightly loaded servers, there are a few tweaks that look useful for highly active systems I want to capture:
* there are a significant number of 'interval' buckets whose text overwrites one another. For dense histograms we need to drop the text and rely on the hover-popup to show the text for an interval bucket, as we do for the main data buckets.
* popups at the right edge of the screen get clipped; we just need to leave more margin instead of drawing the graphics to the right edge
* The bucket density may be more than is helpful and I think we should re-introduce bucket interpolation as a query-param-controlled option, so we can bound the number of buckets. That interpolation algorithm is in https://github.com/envoyproxy/envoy/pull/27094/commits/91896125b1e64578cb7e10fc494fb545e5317121 and was removed during the review of https://github.com/envoyproxy/envoy/pull/27094 . If we are going to render all histograms in a large system we probably need to bound the number of buckets in this fashion. An alternative is to render detailed histograms individually, and only render coarse-bucket histograms by default. Currently the rendering code only works in 'detail' mode.
* The json data for buckets is quite verbose. We should alter the json format to be denser (less repeated keywords). Alternatively we could gzip the whole thing.
* It would be good to stream out the individual histograms as much as possible, to the extent that's not already done.
Contributor guide
Assessment
This issue has not been assessed yet.