diff --git a/docs/platforms/javascript/common/configuration/integrations/elementtiming.mdx b/docs/platforms/javascript/common/configuration/integrations/elementtiming.mdx
new file mode 100644
index 0000000000000..af40515ecfd60
--- /dev/null
+++ b/docs/platforms/javascript/common/configuration/integrations/elementtiming.mdx
@@ -0,0 +1,101 @@
+---
+title: ElementTiming
+description: "Collect Element Timing API data as Sentry metrics."
+beta: true
+notSupported:
+ - javascript.cordova
+ - javascript.capacitor
+ - javascript.node
+ - javascript.aws-lambda
+ - javascript.azure-functions
+ - javascript.connect
+ - javascript.express
+ - javascript.fastify
+ - javascript.gcp-functions
+ - javascript.hapi
+ - javascript.hono
+ - javascript.koa
+ - javascript.nestjs
+ - javascript.deno
+ - javascript.cloudflare
+ - javascript.bun
+---
+
+
+
Welcome to our site!
+``` + +Only elements with a non-empty `elementtiming` attribute will be tracked. + +## Emitted Metrics + +The integration emits two distribution metrics (in milliseconds): + +| Metric | Description | +| ------------------------ | ------------------------------------------------------------------------------ | +| `ui.element.render_time` | Time until the element was rendered. Emitted for both text and image elements. | +| `ui.element.load_time` | Time until the element's resource was loaded. Only emitted for image elements. | + +Both metrics include the following attributes: + +| Attribute | Description | +| ----------------------- | ------------------------------------------------ | +| `ui.element.identifier` | The value of the `elementtiming` HTML attribute. | +| `ui.element.paint_type` | The type of paint event: `image-paint` or `text-paint`. | +| `ui.element.id` | The DOM element's `id` attribute, if set. | +| `ui.element.type` | The tag name (e.g., `img`, `p`). | +| `ui.element.url` | The image resource URL, if available. | +| `ui.element.width` | Natural width of the image, if available. | +| `ui.element.height` | Natural height of the image, if available. | + +## Migration from `enableElementTiming` + +The `enableElementTiming` option on `browserTracingIntegration` is deprecated and no longer has any effect. If you were using it, remove it and add the standalone `elementTimingIntegration` instead: + +```javascript +// Before +Sentry.init({ + integrations: [ + Sentry.browserTracingIntegration({ + enableElementTiming: true, // deprecated, no longer works + }), + ], +}); + +// After +Sentry.init({ + integrations: [ + Sentry.browserTracingIntegration(), + Sentry.elementTimingIntegration(), + ], +}); +``` diff --git a/docs/platforms/javascript/common/metrics/index.mdx b/docs/platforms/javascript/common/metrics/index.mdx index 5b168996c19f3..b4862247849c8 100644 --- a/docs/platforms/javascript/common/metrics/index.mdx +++ b/docs/platforms/javascript/common/metrics/index.mdx @@ -39,6 +39,14 @@ With [Sentry Metrics](/product/explore/metrics/), you can send counters, gauges,