Skip to content

fix(web): emit web vitals under the web.vital.* namespace (v0.1.15) - #4

Merged
nitinstp23 merged 1 commit into
mainfrom
fix/web-vital-attribute-namespace
Aug 10, 2026
Merged

fix(web): emit web vitals under the web.vital.* namespace (v0.1.15)#4
nitinstp23 merged 1 commit into
mainfrom
fix/web-vital-attribute-namespace

Conversation

@nitinstp23

Copy link
Copy Markdown
Contributor

The five core Web Vitals attributes were emitted without the web. prefix (vital.name, vital.value, vital.rating, vital.id, vital.target_selector) while every sibling attribute in the same block (web.vital.cls.*, web.vital.inp.*, web.vital.lcp.*), the emitted metrics (web.vital.lcp, web.vital.fcp, ...) and the root-span rollups (web.vital.<name>.value) already used it.

Backends project web.vital.name/value/rating, so those reads came back empty and web_vital events rendered with no name and no measurement -- observed on session bf92606f-a07d-4a3b-8590-b268829863ac, where the spans carried correct data under the wrong keys.

The old names also collided with the mobile app_vital schema, which owns vital.name and vital.type, putting two different schemas on one key.

Attributes are asserted as literal strings rather than via ATTR.* so a future rename of a constant cannot keep the test green while the wire format regresses.

Telemetry already ingested keeps the old attribute names.

The five core Web Vitals attributes were emitted without the `web.` prefix
(`vital.name`, `vital.value`, `vital.rating`, `vital.id`,
`vital.target_selector`) while every sibling attribute in the same block
(`web.vital.cls.*`, `web.vital.inp.*`, `web.vital.lcp.*`), the emitted
metrics (`web.vital.lcp`, `web.vital.fcp`, ...) and the root-span rollups
(`web.vital.<name>.value`) already used it.

Backends project `web.vital.name`/`value`/`rating`, so those reads came back
empty and `web_vital` events rendered with no name and no measurement --
observed on session bf92606f-a07d-4a3b-8590-b268829863ac, where the spans
carried correct data under the wrong keys.

The old names also collided with the mobile `app_vital` schema, which owns
`vital.name` and `vital.type`, putting two different schemas on one key.

Attributes are asserted as literal strings rather than via `ATTR.*` so a
future rename of a constant cannot keep the test green while the wire
format regresses.

Telemetry already ingested keeps the old attribute names.
@nitinstp23
nitinstp23 requested a review from nimishgj August 10, 2026 09:04
@nitinstp23 nitinstp23 self-assigned this Aug 10, 2026
@nitinstp23
nitinstp23 merged commit 2e10777 into main Aug 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant