vaadin / vaadin/observability-kit

Record UIDL request and response payload size

Open
#363 0 comments 0 reactions 0 assignees View on GitHub

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.bytes
  • vaadin.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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.