Real User Monitoring

Real user monitoring with Core Web Vitals and backend traces

Measure what real users experience in the browser, from Core Web Vitals to JavaScript errors, and connect every slow page to the backend trace behind it.
Benefits

Why teams use Real User Monitoring in Obseria

See real experience, not lab scores

Core Web Vitals from actual users across devices, browsers, networks and regions.

Frontend to backend in one view

Every page load and XHR links to its distributed trace, so slow pages are explained, not just reported.

Prioritize by business impact

Segment performance by page, country, release or customer tier and focus on what affects conversion.

How it works

Real User Monitoring in three steps

  1. Step 1

    Add the RUM snippet

    Include the lightweight JavaScript agent or install it via npm; it captures page loads, interactions, errors and resources.

  2. Step 2

    Correlate with traces

    Trace context headers connect browser requests to backend spans, and Obseria Pipeline masks personal data at ingest.

  3. Step 3

    Analyze and alert

    Dashboards for Core Web Vitals, user journeys and errors, with SLOs and alerts on the experience that matters.

Capabilities

  • Core Web Vitals. LCP, INP and CLS from real users, with percentile breakdowns per page, device and region.
  • Page and route performance. Load timing, resource waterfalls and single-page-app route changes.
  • JavaScript error tracking. Browser errors with source-mapped stack traces, grouped in the Errors Inbox.
  • User journeys and funnels. Follow sessions across pages and see where users drop off or experience slowness.
  • Browser-to-backend tracing. W3C Trace Context links frontend requests to backend services end to end.
  • Session replay link. Open the session replay for any slow or failed interaction to see what the user saw.
Guide

Real User Monitoring: what you need to know

What is real user monitoring?

Real user monitoring (RUM) measures the performance and reliability of a web application as experienced by actual users in their own browsers. A small JavaScript agent records page loads, route changes, user interactions, network requests and errors, and sends them to an observability backend. Unlike lab tests, RUM captures the full diversity of real conditions: slow mobile networks, older devices, browser extensions, distant regions and unusual navigation paths.

RUM is a form of passive monitoring. It only reports what users actually did, which makes it the most accurate source for questions like "How fast is our checkout for customers in Brazil on Android?" It complements synthetic monitoring, which proactively tests availability even when no users are active.

Why real user monitoring matters

Backend dashboards can look perfectly healthy while users suffer. A large JavaScript bundle, a slow third-party script, a layout shift caused by a late-loading banner or a CDN issue in one region never appear in server metrics. RUM shows the experience from the only perspective that ultimately counts.

  • Search visibility: Core Web Vitals are part of Google's page experience signals, and field data from real users is what counts.
  • Conversion: slow and unstable pages lead to abandoned sessions. RUM lets you segment performance by funnel step.
  • Faster debugging: frontend errors arrive with browser, OS, release and the user's path, instead of vague support tickets.
  • Release confidence: compare performance before and after a frontend deployment with real traffic.

Core Web Vitals and other key RUM metrics

MetricWhat it measuresGood threshold (p75)
Largest Contentful Paint (LCP)Loading: when the main content becomes visible2.5 s or less
Interaction to Next Paint (INP)Responsiveness: delay between interaction and visual response200 ms or less
Cumulative Layout Shift (CLS)Visual stability: unexpected layout movement0.1 or less

Google evaluates Core Web Vitals at the 75th percentile of page views. Beyond these three, useful RUM signals include Time to First Byte, First Contentful Paint, long tasks, resource timing for scripts, images and API calls, JavaScript error rate and Apdex-style satisfaction scores. Always look at distributions and percentiles rather than averages, because a fast majority can hide a large group of frustrated users.

Real user monitoring with Obseria

The Obseria RUM agent captures Core Web Vitals, navigation and resource timing, single-page-app route changes, user actions and JavaScript errors. It injects W3C Trace Context headers into fetch and XHR requests, so each frontend request is connected to its distributed trace in the backend. When a page is slow, you can see whether the time was spent in the browser, on the network or in a specific backend service.

RUM events land in Obseria Lake alongside traces, logs and metrics. Obseria Pipeline masks personal data such as email addresses or IDs in URLs before storage. You can segment by any attribute, including page, country, browser, release or customer plan, and query with OQL, for example fetch rum.events | filter page == "/checkout" | summarize p75(lcp), by:{country}. JavaScript errors appear in the Errors Inbox, and every session links to its session replay. RUM web events are billed at $0.060 per million ingested and $0.540 per million stored.

Best practices for real user monitoring

  1. Load the agent early in the page so that it captures the full page load and early errors.
  2. Tag releases and environments to compare frontend versions and keep staging traffic separate.
  3. Upload source maps from CI so JavaScript errors are readable.
  4. Set SLOs on user experience, such as p75 LCP on key pages, instead of only on backend latency.
  5. Segment before you optimize. A global average hides problems that affect specific devices, countries or pages.
  6. Respect privacy: collect only what you need, mask personal data at ingest and honor consent requirements.

Frequently asked questions

Real user monitoring measures what actual visitors experience and depends on real traffic. Synthetic monitoring runs scripted checks from fixed locations on a schedule, even when no users are active. Most teams use both, and Obseria offers both on one platform.

Yes. Obseria captures LCP, INP and CLS from real users and shows percentiles per page, device, browser and region, so you can track them against Google's thresholds.

The agent is designed to be lightweight and sends data asynchronously in batches, so it does not block rendering or user interactions.

Obseria Pipeline masks personal data at ingest, you control which attributes are collected, and data can stay in the EU (Frankfurt, Dublin), the UK or your own cloud account.

Yes. Route changes in single-page applications are tracked as virtual page views with their own timing, interactions and errors.

Ready for observability that delivers answers?

Try every feature free for 14 days, no credit card and no proprietary agents.