feat(webvitals): Adds INP instrumentation to browserTracingIntegration #10629
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds an experimental
enableInp
flag to v8 browserTracingIntegration, which picks up INP webvital entries from the browser and sends a span envelope containing INP data.Some notes and changes involve:
registerInpInteractionListener
, which tracks a mapping of interaction ids to the origin route names. This is used to get the route name when constructing the interaction span payload. The length of the mapping is capped at 10 (therefore no creeping memory issues), similar to howgetINP.ts
tracks candidate interactions.attributes
, nested inside anmeasurements
object. This is because theSpan
class doesn't have ameasurements
field. Not sure if this is the ideal approach, feedback appreciated here._trackINP
Some TODOS for future prs: