-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[ws-proxy] introduce RED metrics, including a http_version label #20196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
My browser is connecting to proxy with http/2, but when proxy does the reverse proxy to server, it downgrades to 1.1. server is using Express, but we haven't changed the impl to use http2 (which would be required for it to leverage http2, I think). Ref: https://stackoverflow.com/a/59569226 |
Originally from #17294 Co-authored-by: Anton Kosyakov <[email protected]>
I think for this value to be populated, we'll need to "bubble up" httpVersion (like what was done with many methods and resource) 🤔 Think of a better way.
a6e53e7
to
3608c55
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code changes LGTM, with this spot where I think we can improve readability. ✔️
Did not test due to time, though.
Description
Introduce RED metrics for ws-proxy for client and server requests. This also lets us inspect http_version (as a label) on requests.
@akosyakov originally started this work in #17294 (it never landed on main). @kylos101 fixed a couple minor things (see later commits in this PR) and tested.
Related Issue(s)
Fixes ENT-673
How to test
Functional test with HTTP2 ✅
kubectl port-forward deployment/grafana -n monitoring-satellite 3000
(add observability if it is missing withleeway run dev/preview:deploy-monitoring-satellite
).Results here.
Functional test with HTTP2 disabled in Chrome 🚫
--disable-http2
flagLoadgen in an ephemeral cluster 🚫
The ops repo does not allow for ephemeral clusters to be created from installer images that are not from main-gha. So, we first need to land this PR on main, and then test in an ephemeral cluster.
dogfood this change in catfood ⌛
Test on Monday, Sept 16, after it lands on main.
Documentation
Preview status
Gitpod was successfully deployed to your preview environment.
Build Options
Build
Run the build with werft instead of GHA
Run Leeway with
--dont-test
Publish
Installer
Add desired feature flags to the end of the line above, space separated
Preview Environment / Integration Tests
If enabled this will build
install/preview
If enabled this will create the environment on GCE infra
Saves cost. Untick this only if you're really sure you need a non-preemtible machine.
Valid options are
all
,workspace
,webapp
,ide
,jetbrains
,vscode
,ssh
. If enabled,with-preview
andwith-large-vm
will be enabled./hold