Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Semver Impact of This PR🟡 Minor (new features) 📋 Changelog PreviewThis is how your changes will appear in the changelog. New Features ✨Attributes
Bug Fixes 🐛
Internal Changes 🔧
🤖 This preview updates automatically when you update the PR. |
4afdde6 to
4158ed5
Compare
adityareddy-dev
left a comment
There was a problem hiding this comment.
The three phase suffixes match the experimental attributes in OTel browser #486, though the prefixes differ: browser.web_vital.inp.{input_delay,processing_duration,presentation_delay} here maps to browser.web_vital.attribution.{input_delay,processing_duration,presentation_delay} there. Those names are still proposals, with agreement tracked on #471.
There is also an absence distinction worth carrying into that discussion. These definitions omit all three phases when there is no interaction to attribute, while the OTel draft preserves the web-vitals dummy INP timings, including zero input/processing and a presentation delay equal to the value. Could we link the naming discussion and document that difference alongside the mapping? Consumers translating between the two would otherwise need to infer whether missing phases and reported zeros mean the same thing.
|
Thanks! Since those names are still experimental and not in semconv, I'd rather not document a mapping yet. Happy to align in a way or another once #471 settles. Omitting is intentional. web-vitals reports a placeholder INP for soft navs with no recorded interaction, so 0/0/value would pull input delay and processing toward 0, make presentation look like the bottleneck, and make the subpart trends follow how many soft navs happen rather than actual perf. |
There was a problem hiding this comment.
Thanks, this looks fine to me!
I agree with for now, not fully aligning to the experimental OTel standard. To be quite frank, I much prefer our prefixed versions here, given that the sub part attributes already differ between LCP and INP, so having the vital in the prefix sounds fair to me (besides that this is what we already do with other web vital attributes).
One case we must keep in mind from Sentry's side: Sentry users can use span attributes as "Span Metrics", meaning, they can build dashboards and queries based on the values these hold. So, an idiomatic attribute name is much easier to reason with than having more generic attributes that must be filtered by web vital type via an attribute.
I don't rule out on aligning with OTel at some point in the future by the way. There's a UX and migration cost to this though and timing-wise, we just switched to the new browser.web_vital.* attributes a few months before they were added to OTel semconv.
We will definitely keep an eye on the OTel browser conventions. Nice seeing some movement there :) Thanks for chiming in @adityareddy-dev!
cc @logaretm let's wait the usual 2-3 days for other reviewers to share their thoughts
LCP and INP only report a total, so there is no way to see which phase made them slow, this can be fixed by introducing web vital subparts.
We already report some of these partially like TTFB, so this PR standardises the other remaining attributes.
New Attributes
browser.web_vital.lcp.resource_load_delayrequestStartminus TTFBbrowser.web_vital.lcp.resource_load_durationresponseEndminusrequestStartbrowser.web_vital.lcp.element_render_delayresponseEndbrowser.web_vital.inp.input_delayprocessingStartminusstartTimebrowser.web_vital.inp.processing_durationprocessingEndminusprocessingStartbrowser.web_vital.inp.presentation_delaystartTime+durationminusprocessingEndResources