vaadin / vaadin/observability-kit
Record UIDL request and response payload size
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 7
- Forks
- 5
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 25
Description
Nothing measures how many bytes an interaction puts on the wire. This is the cheapest answer to "is it the network or the server", and it is the number that explains a ComboBox with a ComponentRenderer and a 50-item page feeling slow: the server may report 40 ms while several hundred kilobytes cross the wire per keystroke.
Why this is easy
The kit already owns the filter chain that sees the UIDL body. ResyncDetectionFilter and SpringResyncDetectionFilter buffer the request through CachedBodyHttpServletRequest so ResyncInspector can classify it. A counting HttpServletResponseWrapper beside that gives the response side.
No Flow change is required.
Proposed work
Record two distribution summaries, only for UIDL requests:
vaadin.uidl.request.bytesvaadin.uidl.response.bytes
Tagged by route through RouteTagResolver, so cardinality stays inside the existing routeCardinalityLimit, and by the interaction kind the request interceptor already resolves (poll / navigation / rpc), which separates a heartbeat from a real data load.
Gate it behind a setting in ObservabilitySettings / ObservabilityProperties, consistent with resync and database.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ResyncDetectionFilter, SpringResyncDetectionFilter, CachedBodyHttpServletRequest, and ResyncInspector to trace how UIDL requests are buffered, then inspect the response path and RouteTagResolver. Review ObservabilitySettings and ObservabilityProperties alongside the existing resync and database settings. Done means the two UIDL distribution summaries are recorded with route and interaction-kind tags, subject to the existing cardinality limit and setting gate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, observability
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100