> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Real User Monitoring

> Capture browser and Flutter app sessions, replay, errors, frontend performance, API timing, and related backend traces.

Real User Monitoring (RUM) records web and mobile user experience and connects frontend telemetry
with backend observability.

## Data model

The Browser and Flutter App SDKs send authenticated events to the same write endpoints:

| Endpoint                    | Stream or storage    | Captures                                                        |
| --------------------------- | -------------------- | --------------------------------------------------------------- |
| `POST /api/v1/rum/sessions` | `logs/rum_sessions`  | Session identity, device, platform, geo, and duration.          |
| `POST /api/v1/rum/actions`  | `logs/rum_actions`   | Views, user actions, resources, APIs, and frontend performance. |
| `POST /api/v1/rum/errors`   | `logs/rum_errors`    | JavaScript or Dart errors and stack frames.                     |
| `POST /api/v1/rum/replay`   | Replay event storage | Browser DOM or Flutter screen replay events.                    |

The three streams are created on first write. A new deployment therefore shows an empty state
until the SDK sends the first event.

## Overview

Open **RUM → Overview** to review sessions, users, errors, page performance, and browser or geography
breakdowns for the selected time range.

## Sessions and replay

**Sessions** lists recent RUM sessions. Open a session to inspect the action timeline, replay
events, errors, device context, and related backend traces.

Treat replay as sensitive user data. Apply collection controls in the SDK, avoid recording secrets
or personal fields, and use the shortest practical retention.

## Errors, source maps, and symbols

**Errors** groups recurring JavaScript failures by fingerprint and shows occurrence count, affected
users, stack frames, and example sessions.

Upload browser source maps or mobile symbols from **RUM → RUM settings → Source Maps & Symbols**.
MoleSignal uses uploaded debug artifacts to restore minified, obfuscated, or native frames. Reading
artifact metadata requires `streams.read`; upload and deletion require `streams.configure`.

## Performance

The performance workspace separates:

* overview trends;
* Core Web Vitals;
* frontend error performance;
* API and resource timing.

API tables expose count, latency percentiles, and error rate by URL. Use the global time range and
facets to compare releases, platforms, countries, or views. Browser applications report Core Web
Vitals. Flutter applications report time to first render, build, raster, vsync, and slow-frame data.

## Related backend traces

When an action carries W3C `traceparent`, the action `trace_id` links directly to backend spans. When a
direct id is not available, session detail can search the session time window for related traces.

A slow frontend action can link directly to the corresponding service trace, logs, and metrics while
preserving investigation context.

## Permissions

* `rum.write` sends RUM events. Application-bound `msrum_` tokens grant only this permission for one application.
* `streams.query` opens organization RUM views and related queries.
* `streams.read` lists debug-artifact metadata.
* `streams.configure` uploads or deletes source maps and mobile symbols.

<CardGroup cols={2}>
  <Card title="Browser RUM SDK" icon="code" href="/en-US/rum/browser-sdk">
    Install the SDK and send the first browser session.
  </Card>

  <Card title="Flutter App RUM SDK" icon="mobile" href="/en-US/rum/flutter-sdk">
    Monitor Flutter views, taps, errors, resources, rendering, and screen replay.
  </Card>

  <Card title="Source maps & symbols" icon="file-code" href="/en-US/rum/source-maps">
    Restore Browser, Flutter, Android, and iOS error stacks.
  </Card>

  <Card title="Data sampling" icon="sliders" href="/en-US/rum/sampling">
    Control session and replay volume independently.
  </Card>

  <Card title="Privacy" icon="shield" href="/en-US/rum/privacy">
    Define which browser content can leave the user's device.
  </Card>

  <Card title="Session replay" icon="video" href="/en-US/rum/session-replay">
    Record and reconstruct timestamped DOM changes.
  </Card>
</CardGroup>
