-
Notifications
You must be signed in to change notification settings - Fork 40.5k
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
Reactor-Netty Metrics #19388
Comments
Note: we should wait for Reactor Netty 0.9.3.RELEASE, because of reactor/reactor-netty#931 and reactor/reactor-netty#926. |
@bclozel Currently we have |
For reference, the existing client and server metrics created by spring boot have a max uri tag value that also defaults to 100. The developer can then override this value via properties. If we're following the same pattern here, then there would need to be a way of customising that value. |
I believe this is now unblocked by the release of reactor-netty 0.9.5.RELEASE |
I've been trying to think of some acceptance criteria for this issue and have came up with the following. HttpServer:
HttpClient:
Thoughts? |
Noticed this issue raised around a memory issue metrics in reactor netty. This may be another blocker before integrating into spring boot. |
Indeed, the current arrangement is storing data in unbounded collections and using tags (raw URIs) that are likely to create cardinality explosion. |
I've just closed this issue, here are a few notes about the current state of metrics support. First, we've only enabled TCP and buffer allocation metrics in Reactor Netty (so no HTTP metrics) for several reasons:
Also, metrics support in Reactor Netty is quite new and there might still be performance issues/bugs (see reactor/reactor-netty#1075). Right now, Reactor Netty does not allow to publish metrics to a custom registry, but rather to the global registry only. |
@bclozel Please check whether the fix reactor/reactor-netty#1076 for reactor/reactor-netty#1075 is relevant for the integration that is committed for this issue. |
Thanks for the heads up @violetagg #1076 doesn't seem to affect our support here; having less tags is easier than removing them once they've been published, so we're good here. |
956afdc#diff-fc6a2fac46dd5d9f6d194074364855baR42 |
I thought it was fixed by #1076 already? |
Reopening as it doesn't seem we can use the TCP metrics either. |
I'm declining this enhancement feature since it seems that it's not really useful for Spring Boot applications. On top of my previous comment, it seems that TCP metrics are only meant for raw TCP clients/servers and that there is no allocator metrics specific API (which is provided by Netty). I'm declining this enhancement as a result. |
Since the release of reactor-netty 0.9.0.RELEASE, both the server and the client will now collect several groups of metrics (TCP/UPD/Conenction Pool etc). These are enabled by invoking a
.metrics()
on the server/client.This is one of the related issue on reactor-netty (reactor/reactor-netty#797)
Should we update the configuration of the netty web server to enable these metrics by default? Is there a way to enable these metrics by default as well on all web clients?
The default metrics library used by reactor-netty is micrometer.
HttpServer Docs: https://projectreactor.io/docs/netty/release/api/index.html?reactor/netty/http/server/HttpServer.html
TcpClient Docs: https://projectreactor.io/docs/netty/release/api/index.html?reactor/netty/tcp/TcpClient.html
HttpClient Docs: https://projectreactor.io/docs/netty/release/api/reactor/netty/http/client/HttpClient.html
The text was updated successfully, but these errors were encountered: