Real User Monitoring
Real User Monitoring SDKs for web, Android, iOS, React Native, and Flutter. Automatic instrumentation for sessions, views, network requests, errors, and resource metrics via OpenTelemetry.
Last9 Real User Monitoring (RUM) captures real user experience data from web and mobile applications. Each SDK instruments sessions, views, network requests, unhandled errors, and resource metrics (plus ANRs on Android), then exports spans and logs to Last9 over OTLP/HTTP.
Supported platforms
What gets captured
All SDKs auto-instrument the same signals:
- Sessions — rolling session IDs with idle + max-duration expiry. Session ID is propagated on every span and log, and every span also carries
session.start_time. A rolloverSession Endis dated at the last activity of the session, so idle time is not counted. - Views / page loads — screen transitions tracked as spans. Auto-tracked via SPA route changes (web), activity lifecycle (Android), UIKit/SwiftUI hooks (iOS), React Navigation (React Native), or
NavigatorObserver(Flutter). ManualstartView(name)is available on every platform. - Network — HTTP requests captured with URL, method, status, duration, request/response sizes. Traceparent header is injected so spans link to backend traces.
- Errors — unhandled JS exceptions, promise rejections, native crashes, and Flutter framework errors. ANR detection is Android-only. Manual
captureError(e, context)is available on every platform. - Core Web Vitals (web) — LCP, FCP, CLS, INP, TTFB.
- Resources (mobile) — periodic memory and CPU samples (configurable interval, default 30 s), plus per-view refresh-rate, slow/frozen frame, memory, and CPU vitals on every View span (
v1.7.0+). - Custom events + attributes —
addEvent,spanAttributes, andidentifyfor user context.
Distribution
SDKs are distributed from Last9’s CDN:
| Platform | Latest versioned | Artifact | Stable CDN root | Versioned CDN root |
|---|---|---|---|---|
| Web | 2.9.0 | UMD script | https://cdn.last9.io/rum-sdk/builds/stable/v2/ | https://cdn.last9.io/rum-sdk/builds/2.9.0/ |
| Android | 1.8.0 | AAR + POM | https://cdn.last9.io/rum-sdk/android/builds/stable/v1/ | https://cdn.last9.io/rum-sdk/android/maven/io/last9/rum-android/1.8.0/ |
| iOS | 1.8.0 | CocoaPods podspec + SPM (Git + CDN) | https://cdn.last9.io/rum-sdk/ios/builds/stable/v1/ | https://cdn.last9.io/rum-sdk/ios/builds/1.8.0/ |
| React Native | 1.8.0 | npm tarball | https://cdn.last9.io/rum-sdk/react-native/builds/stable/v1/ | https://cdn.last9.io/rum-sdk/react-native/builds/1.8.0/ |
| Flutter | 1.8.0 | tar.gz package | https://cdn.last9.io/rum-sdk/flutter/builds/stable/v1/ | https://cdn.last9.io/rum-sdk/flutter/builds/1.8.0/ |
Stable channels are major-version pinned: Web stable/v2 currently serves
2.9.0; mobile stable/v1 currently serves 1.8.0, matching the latest
versioned mobile release. Pin versioned CDN URLs for 1.8.0 (iOS Swift
Package Manager Git URL, lockfiles, checksums). Mobile staging builds use the
-alpha suffix and explicit versioned URLs.
Next steps
Pick your platform:
Once data is flowing, explore it in Discover > Applications — performance, errors, sessions, and session correlation with backend traces. To turn RUM signals into alerts (HTTP error rates, p95 latency, crashes, ANRs), see Alerting on RUM Metrics.
For the version history of all five SDKs, see the RUM changelog.
Troubleshooting
Please get in touch with us on Discord or Email if you have any questions.