Real user monitoring
See what real users wait for
Instrument web, Android and iOS apps with upstream OpenTelemetry to see sessions, Core Web Vitals, errors and conversion funnels. Browser requests carry trace context into your backend, so a slow click leads to the trace behind it, and optional web session replay records pages with inputs masked.
- Web · Android · iOS
- Core Web Vitals
- Upstream OpenTelemetry
How it works
From an app key to a session you can replay
The SDKs are OpenTelemetry's own, and everything from sessions to funnels is worked out in your workspace from the signals they send.
- 01Create an appEach web or mobile app gets a public app key, its allowed origins and its replay settings.
- 02InstrumentAdd the upstream OpenTelemetry packages for the browser, Android or iOS. Setup gives you the code for each.
- 03SendTelemetry goes over OTLP/HTTP to your workspace's RUM gateway, which checks the key and scrubs personal data.
- 04AnalyzeSessions, Core Web Vitals, errors and frustration signals are worked out in your workspace's database.
- 05ConnectBrowser requests carry W3C trace context, so a slow click leads to the backend trace it started.
Sessions
Follow a session from the click to the backend trace
Every session lists its views, actions, requests, errors and frustration signals in order. Requests carry trace context, so a slow call opens the backend trace it started, with the span that waited.
- Rage, dead and error clicks are found from the clicks themselves, with no extra code
- JavaScript errors map back to your source with uploaded source maps, Android stacks with R8 or ProGuard mappings
- Optional web session replay records the page with inputs masked by default
Instrumentation
Upstream OpenTelemetry on every platform
There is no Tracix SDK to adopt. Setup creates a public app key for each app and gives you the code for the upstream OpenTelemetry packages, and the RUM gateway in your workspace checks every request before it is stored.
Browser
OpenTelemetry JavaScript with web-vitals: views, LCP, INP, CLS, FCP and TTFB, resources, long tasks and errors.
Android
The OpenTelemetry Android agent: sessions, screens, app start, crashes, ANRs and slow or frozen frames.
iOS
OpenTelemetry Swift: sessions, URLSession requests, and exceptions sent as log records.
Privacy
Replay masks inputs by default, and the gateway removes email addresses and card numbers before storage.
Funnels and performance
Find where visitors drop out of checkout
Funnels count the sessions that pass through each step, a page view, an action or a custom event, within the window you choose, with the drop-off and the median time between steps.
- Path exploration shows where visitors go next from each page
- Performance breaks LCP down by page, browser, device and country
- Monitors watch Web Vitals per page, JavaScript error rate and session volume
Better together
The user's view, joined to the systems behind it
RUM shares a workspace with your traces, synthetic tests and alerts, so a slow page leads straight to the service, network or release that caused it.
- APM and distributed tracingThe browser span is the root of the backend trace, with no stitching in your code.Learn more
- Synthetic monitoringTest the same pages and APIs on a schedule from your own collectors, even when traffic is quiet.Learn more
- Monitors and alertingAlert on a Web Vital at the 75th percentile per page, on JavaScript errors or on a drop in sessions.Learn more
Supported platforms
What RUM collects on each platform
Every platform uses OpenTelemetry's own SDK and sends to the same RUM gateway, so sessions, errors and traces line up across web and mobile.
| Platform | SDK | Sessions and performance | Errors | Trace context | Session replay |
|---|---|---|---|---|---|
| Web | OpenTelemetry JavaScript and web-vitals | Views, Core Web Vitals, resources, long tasks | JavaScript errors, symbolicated with source maps | fetch and XMLHttpRequest | Yes, inputs masked |
| Android | OpenTelemetry Android agent | Sessions, screens, app start, slow and frozen frames | Crashes and ANRs, symbolicated with R8 or ProGuard mappings | OkHttp | No |
| iOS | OpenTelemetry Swift | Sessions, requests, and screen and app-start spans you add | Exceptions as log records; no dSYM symbolication yet | URLSession | No |
Native mobile screen recording is not part of the upstream OpenTelemetry mobile SDKs, so replay covers web pages only.
Do I need a Tracix SDK?
Does session replay work on mobile?
Can Tracix symbolicate iOS crashes?
How does RUM handle personal data?
Send your first session in minutes
Create an app key in Setup, add the upstream OpenTelemetry packages, and sessions appear as visitors arrive.