Browser RUM - Getting Started
Browser RUM - Setup & Installation Docs | Middleware
This guide walks you through setting up Real User Monitoring (RUM) with JavaScript in the browser. These instructions can also be found on the Installation page in your Middleware Account.
Install
Next.js
, skip to the Next.js section. Step 1: Create Application Reference
Navigate to the Installation page in your Middleware Account. In the Real User Monitoring section, select Create New Application
and provide the application name, origin(s) and Trace Propogation Target(s) to whitelist. Multiple origins can be listed as a comma-separated list.
Step 2: Import Javascript CDN
Add the following script tag to the head section of your index.html file. The tag can be copied directly from the Installation page upon completing Step 1.
Step 3: Initialize the SDK
Add the following lines in your index.html file below the script tag entered in Step 2. We recommend copying directly from the Installation page; select the appropriate Application from the list and copy the code snippet. The window.Middleware
attribute is set in the script from Step 2.
In the example below, env
and recording
are optional. recording: "1"
is the default value and records the entire user session. To track only browser traces and errors set recording: "0"
.
Step 4: Add User Information [Optional]
To gather user details add key-value pairs, as shown below. Any user metadata can be defined as a key-value pair.
If you need to define attributes post initialization of the SDK, utilize the Middleware.setAttributes
method, as exemplified in the following example.
Once RUM is configured, metrics should begin appearing on the RUM Dashboard in Middleware within a few minutes. For more information on the RUM Dashboards see here.
Step 5: Add Custom Logs [Optional]
Use these functions to keep track of different types of issues in your system, making it easier to monitor and fix problems.
Connect RUM to Tracing
RUM Tracing allows you to gain insight into the specific actions of your users. You can watch time-stamped videos of user’s website interactions, pinpoint performance bottlenecks across your platform, and identify the major causes of customer drop off.
The following installation uses OpenTelemetry B3 Propagator heads. Learn more about B3 Propagation here.
Access RUM From Trace List
To access your Session Replay data, navigate to the APM section, select the Trace List tab and choose a trace to view your data.
Supported APMs
Language | Supported | APM Version | Environment Variable |
Cloudflare | ✖️ | ✖️ | ✖️ |
Go | ✅ | >= 1.1.100 | ✖️ |
Java | ✅ | ✖️ | ✅ |
.NET | ✅ | ✖️ | ✅ |
Next.js | ✅ | ✖️ | ✖️ |
Node.js | ✅ | >= 1.2.5 | ✖️ |
PHP | ✖️ | ✖️ | ✖️ |
Python | ✅ | >= 0.3.2 | ✖️ |
Ruby | ✅ | >= 2.1.0 | ✅ |
Vercel | ✅ | ✖️ | ✖️ |
API Reference
Function | Returns | Parameters |
---|---|---|
debug(log) | undefined | log (string): The debug message to be logged |
info(log) | undefined | log (string): The informational message to be logged |
warn(log) | undefined | log (string): The warning message to be logged |
error(log) | undefined | log (Object): An Error object |
track(config) | undefined | config (object): Configuration object |
setAttributes(config) | undefined | config (object): Configuration object used to set attributes after the initial configuration with .track() |
Configuration Object
Property | Type | Required | Default | Description |
---|---|---|---|---|
projectName | string | ✅ | URL of the application | Main application identifier, encapsulating application instances like dev , staging , and prod |
serviceName | string | ✅ | Associates application instances with traces as a subcategory of the project | |
accountKey | string | ✅ | Generated from Installation -> JavaScript -> Create New Application | |
target | string | ✅ | Target URL for the application using RUM - Required http(s):// prepend | |
env | string | ✖️ | "prod" | Arbitrary string for filtering applications |
recording | string | ✖️ | "1" | Toggle used to enable/disable video recording - "1" enables video recording and "2" disables video recording |
tracePropagationTargets | Array\<RegExp\> | ✖️ | Targets for trace propagation - URL’s of back-end serve as array of regular expression literals (http(s):// must be omitted) | |
tracePropagationFormat | string | ✖️ | "b3" | Trace propogation format |
defaultAttributes | Object\<string, string> | ✖️ | Key value pairs used to filter sessions/traces - name and email filter RUM sessions, while all other keys are arbitrary strings for trace filtering | |
ignoreUrls | Array | ✖️ | URL’s that will be ignored |