Docs > Platform Observability > Getting Started with RUM
Getting Started with RUM & Session Replay
Overview
This guide introduces AppStatus RUM & Session Replay and covers:
- One browser snippet, no build step required
- Core Web Vitals from real visitors, not a lab
- Breakdown by page, browser, device and country
- JavaScript errors correlated with backend traces
- Masked session replay for the sessions that went wrong
What is RUM & Session Replay in AppStatus?
RUM measures what your visitors actually experienced — how long the page took to become usable, how quickly it responded to their first interaction, and how much the layout moved under them while it loaded.
Sessions can be replayed to see the exact path a user took into a failure. Text and input values are masked structurally in the browser before the recording is uploaded, so the content of forms never leaves the visitor’s device.
Key capabilities:
- Core Web Vitals — load, interaction delay and layout shift — per page
- Segmentation by country, device, browser and connection
- Frontend JavaScript errors linked to the backend trace they triggered
- Session replay with structural masking applied before upload
- Recordings retained for 14 days, with on-request deletion
What you will see
What the page performance table looks like
Scroll the table sideways to see every column.
Segment by country before concluding the site is slow — the average hides the worst region.
Troubleshooting
No sessions appear after adding the snippet
Confirm the snippet loads before other scripts and is not blocked by your content security policy. Check the browser network tab for the request; a blocked request is the usual cause.
Replay recordings are missing for some sessions
Replay is sampled separately from metrics and is far heavier. Raise the replay sample rate if you need more coverage, but expect the volume cost to rise with it.
Sensitive text appears in a recording
Masking is structural and applies before upload, but custom components can need an explicit mask attribute. Review a form page after any significant frontend change, and delete affected recordings.
Operational Guidance
- Segment by country and device before concluding the site is slow — the average hides the worst region.
- A frontend error with no matching backend error is usually a client-side or CDN problem.
- Use replay to answer "what did they click", not as a general debugging tool; it is slower to read than a trace.
- Recordings can be deleted on request; deletion applies immediately.
Step-by-Step Setup
RUM is the fastest thing on this list to switch on: one snippet in your page template. Everything after that is deciding how much to sample and confirming masking behaves on your own forms.
Before you start
- Access to your site template or base HTML layout
- 1
Create an ingest key scoped to RUM
Open Ingest Keys and create a key scoped to RUM for the environment you are setting up. The key value is shown once — copy it into your secret manager now, not into source control.
WhereIngest Keys → Create keyTipOne scope per key. A key reused across signals turns a single leak into full ingest access.
- 2
Add the browser snippet
Paste the snippet into your base template, as early in the head as you can and before other scripts. It loads asynchronously and does not block rendering.
WhereRUM → Add application → copy snippetTipThe RUM key ships in your page source. That is by design — its scope lets it send browser telemetry and nothing else.
- 3
Choose sample rates
Set the metrics sample rate high so your Web Vitals are representative, and the replay sample rate low. Replay is far heavier than metrics and you rarely need every session.
WhereRUM → Settings - 4
Verify masking on a real form
Load a page with a login or checkout form, then open its replay. Confirm the input values are masked. Masking is applied in the browser before upload, but custom components can need an explicit mask attribute.
WhereRUM → Sessions → open a replayTipDo this before rolling out widely, and again after any significant frontend change.
- 5
Segment before drawing conclusions
Open the page table and break the numbers down by country and device. A site that looks fine on average is often poor for one region or one device class.
WhereRUM → Pages
Configuration Options
Every option you can set, what each choice means, and what to pick. Use this as a reference while you fill in the form.
Sampling and privacy
| Field | Options | What it does | Recommended |
|---|---|---|---|
| Metrics sample rate | 0–100% | Share of sessions reporting Web Vitals. | High — metrics are cheap and you want them representative. |
| Replay sample rate | 0–100% | Share of sessions recorded for replay. | Low. Replay is heavy; sample it, do not collect everything. |
| Masking | On / off | Hides text and input values before upload. | Keep on. It is applied structurally in the browser. |
| Retention | Fixed | How long recordings are kept. | 14 days, then removed automatically. Deletion on request is immediate. |
Feature Reference
Every feature, where to find it in the app, and what it does. Use this when you know what you want to do but not where it lives.
| Feature | Where in app | Description |
|---|---|---|
| Core Web Vitals | RUM → Pages | Load, interaction delay and layout shift from real visitors. |
| Segmentation | RUM → Pages → filters | Break results down by country, device, browser and connection. |
| Session replay | RUM → Sessions | Masked recording of the path a user took into a failure. |
| Frontend errors | RUM → Errors | JavaScript errors linked to the backend trace they triggered. |
Next Steps
Continue building your monitoring stack:
