Real User Monitoring (RUM) is a passive approach to website performance monitoring that collects and reports performance data as experienced by the site’s actual users.
Real User Monitoring (RUM) is a service that passively collects performance data directly from the end-users’ browsers when they connect to a website or web service and generates reports based on the visitors’ experiences when accessing the page. The reports inform DevOps about the webpage’s performance based on the end-user environment variables such as location, device, operating system, and browser. Real User Monitoring is especially helpful for catching issues early on caused by site changes and upgrades. Data collected includes:
- Load times for time to first byte and page ready time
- Redirect, DNS and connect duration
- Backend send and receive duration
- Frontend DOM and Render duration
Why use Real User Monitoring?
The day of the static HTML page ended quite some time ago, and web pages and web services have evolved into dynamic distributed systems that change and evolve daily. Changes that occur in one system can affect all or only certain users making performance management difficult to maintain and diagnose. Synthetic or active monitoring can get you baseline, actionable performance information and alerts, but Real User Monitoring provides you with the information needed to make sure every user has a great experience.
As a brand’s audience grows, so do the number of different locations, devices, browsers, and operating systems used by the visitors. Making sure all of those users receive the same great service requires a monitoring system that can evaluate the quality of every user experience. Real User Monitoring provides the aggregated performance of every user, and organizes the performance data based on location, device, operating system, browser, and page view making trend spotting easier and provides “first-cause analysis” (Croll and Power, Complete Website Monitoring, p. 357).
With first-cause analysis you can see exactly when a performance problem starts, what site traffic looked like at that time, and which metric shows a decrease in performance. This information leads you to find the root cause such as a network, database, or geographic issue that does not appear readily in other forms of monitoring.
How does Real User Monitoring work?
Real user monitoring is considered a passive type of monitoring because the service has to wait for page views before collecting any data, and active monitoring or Synthetic Monitoring emulates the user and initiates the page interaction on a regular schedule. Different methods exist for Real User Monitoring including server-side collection (frequently uses cookies), browser-side (JavaScript or agents), or a hybrid of the server-side and browser-side methods. What needs measuring typically dictates the RUM solution used.
In the case of measuring page load performance, a JavaScript file loaded on the visitor’s browser makes the most sense because the browser initiates the request. The process of gathering and presenting information is a five-step process:
Load: The small script file (see example below) located in the <head>
tags of the monitored pages loads asynchronously.
<script>
var _urconfig = { sid: "9acad2af-b1f5-4438-8de6-5047a02a7ecf", aip: 0, usePageProtocol: false };
(function (d, s) {
var js = d.createElement(s),
sc = d.getElementsByTagName(s)[0];
js.src = "https://hit.uptrendsdata.com/rum.min.js";
js.async = "async";
sc.parentNode.insertBefore(js, sc);
}(document, "script"));
</script>
Record: The script file gathers performance data as the page continues to load.
Send: The page finishes loading, and the script file sends the data back to monitoring service’s servers using a secured connection.
Process: The servers queue the data for processing. Within seconds or minutes at peak times, the servers pull the performance data, the user’s environment information, and other meta-data and save it to the databases.
Aggregation: When retrieved for reporting, the servers return the data for the specified period and organizes the results based on the page viewed, location (state or country), browser (type and version), operating system (type and version), and device type.
Is Real User Monitoring just another analytic tool?
The field of web analytics covers a broad spectrum of tools for capturing user data, and Real User Monitoring is sometimes lumped into the analytic category because it does provide some very basic analytic information. Granted, the distinction between web analytics and Real User Monitoring is a bit fuzzy, but the difference is in what they measure. An analytic tool like Google Analytics provides detailed information about visitors and their interaction with the site including demographics, duration, conversion rates, and click paths. Real User Monitoring provides detailed information about the visitor’s experience based on performance while using a website.
Some tools provide a hybrid of both interaction and experience, but typically not very well. Many integrated solutions sample the data, do not provide real-time results, and do not provide a comprehensive overview of the experience data forcing the user to look at a single metric at a time. A dedicated RUM tool provides detailed performance results based on every user’s experience in as close to real time as the servers can process the data with dashboards and reports dedicated to providing the data in a comprehensive fashion.
Why use Real User Monitoring with Synthetic Monitoring?
Most companies use Real User Monitoring in conjunction with synthetic website monitoring. Synthetic Monitoring uses an active approach to monitoring by using a network of servers that act like real users when testing a website on regular intervals. Synthetic Monitoring can gather performance data on an element-by-element basis, test functionality like login forms and shopping carts, and issue alerts when the site becomes unavailable, errors, or experiences drops in performance. Changing user agents, bandwidth throttling, and testing happy paths from a state of the art computer only simulates a user’s experience. The actual site visitors use a variety of devices, browsers, bandwidths, and locations when interacting with a page. Although Synthetic Monitoring can model the typical user, trying to capture performance data for every user’s environment just is not practical; besides sometimes synthetic tests succeed while a subset or all users may experience problems not detected by Synthetic Monitoring.
Real User Monitoring captures the actual metrics as experienced by the site’s visitors, and when Real User Monitoring reports indicate a problem, Synthetic Monitoring can mirror those users and expose the root-cause. Real User Monitoring cannot issue an alert for an outage simply because Real User Monitoring cannot work in the event of an outage, but because Synthetic Monitoring initiates the connection, it can issue an alert when a site becomes unavailable. Real User Monitoring and Synthetic Monitoring together complement each other and compensate for the weaknesses found in the other.
Conclusion
Asking users directly is a great way to get detailed information about how they felt about an experience, but getting a quality sample proves difficult for most brands. Real User Monitoring reports on the quality of the user experience for every site visitor without the annoying popup or affecting performance. With the ever-changing landscape of technology and devices, maintaining a quality user experience becomes more of a challenge. Real User Monitoring takes out the guesswork of Synthetic Monitoring and provides immediately actionable, easy to analyze performance data.
Got curious? Try Real User Monitoring free!
All you’ve got to do is sign up, enter your URLs, paste the RUM script into your page head, and watch the data pour in. We’ve got detailed setup instructions for you in the Knowledge Base to help you along if you need it. Go for it! No commitment and no credit card required.
Get Started