R
Observability
Real User Monitoring (RUM)
Drop-in 5KB JS SDK captures Core Web Vitals, JS errors, route changes.
▸ How it works
A tiny script tag emits `navigator.sendBeacon()` payloads on page load (Navigation Timing API), unhandled errors, unhandled promise rejections, and single-page route changes. Funnel batches them into a partitioned `rum_events` table and renders LCP/FCP/TTFB/CLS/INP percentile charts plus a slowest-pages and top-JS-errors panel with drill-down drawers.
▸ What this lets you do
- ✓ Track real-user Core Web Vitals (LCP, FCP, TTFB, CLS, INP) at p75/p95
- ✓ See which pages are slow for whom, with browser + country + device breakdown
- ✓ Catch every uncaught JS error with stack trace and reproduction context
- ✓ Beacon payload is fire-and-forget — zero impact on page performance
▸ Get it running
- 1 Add the script tag to your HTML `<head>`
- 2 Set `data-project-token` to a key with scope `rum:write`
- 3 Set `data-endpoint` to your Funnel `/v1/rum/events` URL
- 4 Open `RUM` in the dashboard
▸ Code examples
<script
src="https://funnel.example.com/rum/funnel-rum.js"
data-project-token="st_YOUR_KEY"
data-endpoint="https://funnel.example.com/v1/rum/events"
defer
></script>
Where to find it
/app/p/:org/:project/rum