-
Notifications
You must be signed in to change notification settings - Fork 168
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
Micrometer Observation Support #17436
Comments
Hello @marcingrzejszczak and thank you for creating this enhancement! |
@marcingrzejszczak we discussed Micrometer integration internally with the team. We are considering adding this support to our commercial Observability Kit, and make a research by ourselves first. Thus, I would ask you to hold your contribution for a while. We'll get back to you once we get a vision of the solution and whether Micrometer Observation can be added into Vaadin Flow core. |
@marcingrzejszczak we decided to proceed with Micrometer and Vaadin integration and to try instrument the Vaadin Flow core/RPC communication. Please assign me to the pull request and/or ping me whenever you need a help or assistance. Thank you! |
Hey, thanks! I've started some initial analysis and would definitely could use with your help. Do I understand correctly that wrapping a If my analysis is not correct can you please tell me what should be the point of entry to all requests Vaadin and where I can find the points of egress, so all clients that Vaadin uses to send requests over the wire. Another question is what key / value pairs would be interesting for users as high cardinality (can have a lot of different values e.g. use name) and low cardinality (not a lot of values e.g. http method) tags? |
@mshabarov do you want me to mention you when I have questions or just comment here and wait for your answer? |
I get the notifications anyway :) |
For this purpose, I'd propose to create a new protected method in
Good questions, for this I need a bit more time to answer. Will be back soon. |
Another question - are you willing to make Micrometer Observation a compile-time dependency in Flow or do you want it to be optional? I have an idea on how to implement the feature but the solution depends on the answer to the question. From my perspective obviously it would be easier if it is a mandatory dependency then it will be easier to not only add observations but also other metrics we can add later. |
In the meantime I've created a draft PR to show how I think this could be done #17494 . I took it out for a spin with the skeleton example with Spring Boot and it seems to be working locally (just FYI for all of that to work I'm using a branch of Micrometer 1.12.0 that has Jakarta instrumentation in it so the PR will be permanently broken until we merge the feature). This is what I got in Zipkin |
This is a list of metrics, including Vaadin-specific ones, that our Observability Kit exposes, this can be used as a reference https://vaadin.com/docs/latest/tools/observability/reference#metrics to have insights on what users might want to monitor. About cardinality: within Vaadin + Micrometer integration, do we need to handle them differently or somehow mark them differently? |
No that list is fine. I'll have a look at that later. So I'm splitting the PR into 2. One will introduce VaadinFilters the other will add instrumentation. Once you know what are the egress points out of Vaadin don't hesitate to ping me and I'll look if any instrumentation wouldn't be beneficial there (unless there's already sth there). |
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinFilter simulates an around aspect around processing of a request related to vaadingh-17436
VaadinRequestInterceptor simulates an around aspect around processing of a request. Related-to #17436 Co-authored-by: Mikhail Shabarov <61410877+mshabarov@users.noreply.github.com>
Describe your motivation
I'm a co-maintainer of Spring Cloud Sleuth and Micrometer projects (together with @shakuzen and @jonatan-ivanov).
Micrometer Observation is part of the Micrometer 1.10 release and Micrometer Tracing gives support for Tracing capabilities. The idea of Micrometer Observation is that you instrument code once but you get multiple benefits out of it - e.g. you can get tracing, metrics, logging or whatever you see fit).
I was curious if there's interest in adding Micrometer Observation support so that except for metrics, spans could be created and tracing context propagation could happen too. Via Micrometer Tracing one can use OpenTelemetry or OpenZipkin Brave Tracer, but with the handler mechanism the possibilities are endless :)
Describe the solution you'd like
We can add a PR to instrument the RPC communication of Vaadin.
Additional context
Micrometer Observation Documentation
The text was updated successfully, but these errors were encountered: