Core Web Vitals
LCP
INP
CLS
TTFB
Web Vitals over time
SQL
SELECT extract(epoch from time_bucket('{{rollup_interval}}', timestamp))::integer AS time,
upper(replace(metric_name, 'browser.web_vital.', '')) AS vital,
AVG(COALESCE(value, distribution_sum / NULLIF(distribution_count, 0)))::float AS value
FROM otel_metrics
WHERE project_id='{{project_id}}'
AND metric_name LIKE 'browser.web_vital.%'
AND ('{{var-app}}' = '' OR resource___service___name = '{{var-app}}')
{{time_filter}}
GROUP BY time, vital ORDER BY time DESC
No data in this time range
Try a wider time range or adjust the filters.
Vital sample coverage
SQL
SELECT upper(replace(metric_name, 'browser.web_vital.', '')) AS vital,
SUM(COALESCE(distribution_count, 1))::text AS samples,
MAX(timestamp)::text AS last_seen
FROM otel_metrics
WHERE project_id='{{project_id}}' AND metric_name LIKE 'browser.web_vital.%'
AND ('{{var-app}}' = '' OR resource___service___name = '{{var-app}}') {{time_filter}}
GROUP BY metric_name ORDER BY metric_name