Table of Contents
Real User Monitoring can help organizations convert online customers faster, reduce churn, and improve customers' overall digital experience. In this guide, we will break down what it is, how it works, why use it, how it's different than other types of user monitoring, and also cover the most common features found in a comprehensive RUM solution.
Definition: What Is Real User Monitoring (RUM)?
Real User Monitoring, or RUM, is a type of monitoring technology for digital businesses that analyzes customers' digital experiences by looking at exactly how online visitors are interacting with a website or application. Real User Monitoring analyzes everything from page load events to HTTP requests to frontend application crashes. It's also known as digital experience monitoring, real user measurement, user monitoring, end-user experience monitoring or RUM.
The most well-known example of website traffic analytics is Google Analytics, or GA, which tracks certain types of interaction between your users and your website or webapp. GA can track page views, click paths, browser types, and traffic sources but is it really telling you how satisfied your users are?
GA does a good job of giving you high-level data about your end users' digital journey, where they come from, what pages they access, and so on. However, it doesn't collect the data you need to easily assess their overall level of satisfaction. GA was not built for that. That is where RUM comes in.
This monitoring software is part of APM (Application Performance Monitoring) and it allows you to stay in control of your users' digital experience, and in turn, their level of satisfaction. Basically, RUM allows you to dive into performance metrics based on a single user's or users' business journey, mapping out anomalies throughout their experience. These performance and user experience metrics give you the opportunity to understand what went wrong, where and in turn, fix it so that it doesn't impact a large number of users.
Interested in learning more about APM and how it's different? Check out our RUM vs APM comparison.
Want to make sure your customers get a flawless experience?
With Real User Monitoring, you get visibility into real user sessions and receive real-time alerts whenever a bug is affecting performance or user satisfaction.
Get started
See our plans
Free for 14 days. No credit card required
Real User Monitoring vs Synthetic Monitoring
Synthetic monitoring is often defined in opposition to RUM but, in fact, they work very well together. Synthetic monitoring, also known as active monitoring or synthetic transaction monitoring (STM), involves using synthetic transactions, such as pinging a service, to monitor application availability and response time.
While synthetic monitoring tools measure data in a controlled environment and in a period fashion that results in more precise and reliable data, RUM solutions collects data from real users and real data is sometimes messy due to browser specifics, network issues, device specifics, etc.
Synthetic monitoring creates a simulation of users or traffic in order to understand how your webapp or website is performing.
By comparison, the sole purpose of RUM is to monitor metrics based on data sent from real visitors' browsers. Each customer visit becomes a data point that helps you assess their real level of satisfaction when it comes to your website or webapp performance.
Our colleague dives deeper into this RUM vs. synthetic monitoring comparison in this video:
Which is better: Synthetic Monitoring or Real User Monitoring?
One is not better or more useful than the other. In general, having a solution for both synthetic monitoring and real user monitoring will provide you with double the insights to improve your customers' digital experience. If you need both, then you should look for a website monitoring tool since they can measure real user metrics, as well as run performance tests.
If we had to choose one tool, we'd go with real user monitoring as it allows you to track real user data as opposed to synthetic data but we do recommend using both, if possible. Learn why from our blog post about the differences between RUM and synthetic monitoring.
Popular Real User Monitoring Topics
Benefits of Real User Monitoring
First off let's start with some basic tasks your RUM solution can and should help you with and why you should use real user monitoring:
Problem Solving
RUM helps you by understanding (through data) what is impeding a near-perfect experience for your users and troubleshooting those issues to improve their digital experience.
Segmentation
Not everyone uses the same browsers, connection types, etc. so limiting your performance improvements or testing to a certain operating system, browser, location, etc. doesn't really cover the basis for the masses of users that will interact with your website or webapp.
Faster Actionable Sights
Know right now what's affecting your UX (user experience). An alerting feature in your RUM solution allows you to monitor your UX in real-time and get actionable insights into your users' website or app experience.
Common Real User Monitoring Features
The combination of these features is what allows you to break down the data and get to know the quality of the interaction your users are having with your website or webapp. Some of the features are:
- Apdex
- Page load events
- Monitor Single-Page & Multi-Page Applications
- HTTP requests
- Alerting
- Sessionization
- Crash reporting
- Release tracking
- Load time breakdown
- Performance data grouping
- Resources insights
How Real User Monitoring Works
RUM looks at live user sessions to see how customers interact with your website or webapp and generates reports that you can use to detect and solve performance issues. It makes it easier for you to see what pages the user visited and see what went wrong and when.
The process can be broken down to six steps as follows:
- Data capture. RUM collects page-level metrics on page load times, HTTP requests, load times of specific elements, and a lot more from various data sources - JavaScript on a browser, load balancer, server and its log files.
- Sessionization. The data is organized into a record of pages, actions, and timing information for each visit.
- Problem detection. The system checks resources, HTTP endpoints, pages, and visits for unusual behaviors and their causes, such as errors, slow response times, problems with navigation, and so on.
- Individual visit reporting. You can use the captured data to re-create the user's visit. Depending on the RUM solution, you can see what the users saw or just a summary.
- Reporting and segmentation. You can aggregate data to analyze page availability or performance across different browsers and user segments.
- Alerting. When anomalies are detected, the monitoring solution sends alerts.
For a better understanding of how RUM works, check out the example below.
In this example, you can see metrics such as top pages, page load times, page load histogram, and Ajax histogram. All these metrics are normally collected in real-time, thus giving you complete visibility into your users' digital experiences and anything that might be impeding optimal performance.
Let's dive into a few other popular features in real user monitoring solutions. Such as the ability to inspect individual user sessions. See an example below.
As you can see, the metrics you collect via your RUM tool allow you to get information on individual sessions, which is helpful to look into a specific digital journey that wasn't the level of quality you'd like to deliver and understand what happened.
You should also be able to dive into on-page transactions, get data on the number of new users & total users. Lastly, RUM also allows you to filter metrics by country, operating system (OS), browser, specific users or URL groups.
Let's begin breaking down some of the features and metrics a Real User Monitoring tool can include:
Apdex
Application Performance Index, or Apdex, is a measurement of your users' level of satisfaction based on the response time of request(s) when interacting with your website or application.
The Apdex method takes your defined response time threshold (T), the sum of satisfactory response times plus half of the tolerable response times divided by the total number of samples (requests sampled) in order to calculate a ratio from 0 to 1. Here are some of the levels you may find your website or application to be scored at with Apdex:
- 1.00-0.94 = Excellent
- 0.93-0.85 = Good
- 0.84-0.70 = Fair
- 69 and 0.49 = Poor
- >0.49 = Bad
Example of Sematext Experience Apdex Scoring
The average Apdex score is 0.85 so if you are anywhere near that range, you're doing something right. Read more about how to use Apdex to measure user satisfaction here.
User Activity Monitoring through Page Load Events
Page load events are recorded using the browser timing APIs. Each page load event is recorded and later displayed on charts that show the time spent in the back end (network and web app) and the time spent in the browser.
In addition to load times, your RUM solution should also record the loaded resources (images, fonts, stylesheets, javascript files) and the associated loading times. Page load events help you by filtering web performance by URL, browser type, and version, operating system, geolocation, etc.
Monitoring Single Page Applications
It's advisable to find a RUM solution that supports Single-Page Applications or SPAs. SPAs pack lots of different components, features, or other assets, and the complexity of monitoring them increases. In order to monitor SPAs you would need to monitor both hard and soft page loads, JavaScript errors, details of those errors, number of samples, loading time and unloading of views.
Monitoring Javascript errors is critical to monitoring SPAs as they can cause the entire webapp to crash. On regular websites, errors can break some part of the website, but in most cases, the user can continue using the website and they can navigate to some other unaffected part of the website. In SPAs errors can cause the entire webapp to stop responding to user inputs, causing your users to possibly take off running in the direction of your competitors.
With RUM, you also get stack traces for the captured errors, so you can stop hunting for the location of the error and jump right into the correct JavaScript file. This is especially important for modern webapps that use minified code in production.
Being able to differentiate between soft page loads and hard page loads is very important for SPAs. The performance profile of soft page loads and hard page loads is different so being able to show monitoring data for one or the other can be very beneficial when troubleshooting issues. Different RUM solutions will take a different approach to measure the duration and other metrics related to soft page loads so you might see differences in reported metrics.
Interested in a solution that helps you stay ahead of any SPA bottlenecks?
Real User Monitoring enables you to monitor page performance and resource usage of your SPAs giving you a headstart in troubleshooting issues.
Try it free for 14 days
See our plans
No credit card required – Up and running in no time
Another part of monitoring SPAs are AJAX requests, let's read more about them below.
Tracking AJAX Calls/Requests
Any delay in loading resources, AKA, HTTP requests, can cause delays in time to load the entire page or limit the user to complete a transaction. The visual part of any SPA or MPA is one of the most important metrics to monitor, it is a measure of how long it takes for the SPA or MPA to actually be visible to the user.
Keep in mind that failed HTTP requests can impact your Apdex score and in turn, your entire UX. TIP: It is recommended to integrate your RUM solution with that of a transaction tracing tool so that you can see exactly where time on the backend was spent for these slow or failed HTTP requests.
Alerting
You should be able to create alerts for yourself based on the Apdex score and page load times. Any RUM solution should include this alerting feature as it's detrimental in order to troubleshoot a poor Apdex score, page-load time, and more. If you're new to alerting, you should check out this blog post where we explain why alerts are important for the performance of any system.
Sessionization
This feature allows you to inspect individual user sessions and see the timeline of page load events, on-page transactions, and HTTP requests made during the session. The session would ideally also include user information and any other metadata such as browser information. The goal of this view would be to help with troubleshooting issues reported by the user (or by crash reporting).
There are many popular RUM tools that help with sessionization such as Inspectlet, HotJar, and many others. However, tracking a part of that user session or only the user session does not give you the insights you need in order to understand what is impacting your users' digital experience.
Release Tracking
Whenever developers release a new version of their website or webapp, they should be able to notify their RUM solution, possibly by sending a specific type of “release event”, and upload source maps for that particular release. Tracking release events allow you to understand if there is a new release affecting your end-users' experience.
Load Time Breakdown
Load-time performance depends on multiple factors.
If your visitors are experiencing slow page-load or HTTP requests performance it can be caused by the network, DNS servers, redirects, application performance, etc.
If your visitors are experiencing slow page-loads or poor HTTP request performance, it's often caused by the network, DNS servers, redirects, application performance, among other things.
To better understand which part of the loading process is slow, Sematext Experience, our Real User Monitoring Tool, shows you a detailed timing breakdown on the Page Loads and HTTP Requests screens:
This breakdown helps you understand which part of the process affects your load times the most. Readmore in the documentation to understand what each part means.
Performance Data Filtering and Grouping
Any RUM tool allows you to filter by browser, country, operating system, and other attributes that it automatically captures for each user. Theability to do data grouping allows you to slice the data and find performance differences between browsers, countries, device types, etc.
If you would like to be able to filter by some additional attributes, in Sematext Experience you can use customtags and you can group by those as well.
Resources Insights
When someone visits your website the browser will begin downloading resources. These resources can have a big impact on your website's loading speed.
The same process happens in single-page apps when users navigate to a different part of the web app.
Resources insights pages give you detailed information about each resource that was fetched while loading your website. This includes images, fonts, stylesheets, and other media.
Example of Sematext Experience Resources Insights view
To better understand the metrics shown in the above table, read more in the documentation, and if you need help checking your load times.
More Popular Real User Monitoring Topics
Real User Monitoring Best Practices
For real user monitoring to be effective we first have to make sure we are using it correctly.
Let's take a look at some of the top best practices to keep in mind when using a real user monitoring tool, which you can read more about in our complete real user monitoring best practices guide.
Test Performance of New Product of Features
Make sure you're testing new products in a testing environment vs. in production. Synthetic monitoring can help you here. So that when you're in production with real users, you have solved a majority of the bugs or kinks in your new product and/or feature.
Share powerful data with your RevOps/BizOps team
RUM holds invaluable insights for your RevOps & BizOps team(s) – a happy customer starts with performance.
Combine your RUM solution with transaction tracing, log management, and infrastructure monitoring
Application performance management doesn't start with your users. It starts in the correlation of data in order to improve performance, fix bugs, reduce downtime and in turn, improve users' digital experience. Downtime exists when:
- Basic Error in code (Log Management – if you're new to this, you can learn what it means, how it works, and why you need it from our log management guide)
- Slow request in your database (Log Management)
- Overloaded CPU (Infrastructure Monitoring)
- Latency consumed, slow performance in a transaction (Transaction Tracing)
- And many more possible errors related to containers, servers, etc.
Looking for a RUM solution to complete your monitoring toolkit?
We offer real user monitoring that helps reduce performance-related issues and ensure customer satisfaction by giving you 100% visibility into areas that affect UX.
Start your 14-day free trial
See our plans
No credit card required
Examples of RUM in Action
Let's see what RUM looks like in action:
Customers are reporting downtime in my website
In this case, what you could do via your real user monitoring solution would be to dive into page-level metrics, understand what is causing the downtime, be it failed HTTP requests or another issue, and send this data to your team in order to have it fixed.
Synthetic tests not matching user experience
As we mentioned before, one of the downsides to synthetic monitoring is exactly that, it's synthetic. In this case, RUM can allow you to compare diagnostics such as time periods, or specific metrics that are very similar in order to understand what went wrong.
Real User Monitoring Tools
The field of RUM is still new, but its adoption is inevitable. There are already a lot of great real user monitoring solutions available in the market, Sematext being one of them.
Sematext Experience, our real user monitoring tool, offers support for:
- Page load events including support for single-page applications (SPAs)
- HTTP requests
- Alerts based on Apdex score and/or page load times
- URL grouping
- Sessionization
- Filter data by release version, browser, version, geo-location, etc.
- Location-based heatmap
In addition to load times, Sematext Experience, also records the loaded resources (images, fonts, stylesheets, javascript files) and the associated loading times.
Check out our tutorials to learn more about how you can use Experience to improve your user experience:
- Using Sematext Experience to Monitor Website Anomalies Caused by Browser Updates
- How to Monitor Frontend Performance with Sematext Experience
RUM Limitations
While it has all these benefits, we can't ignore that it also has several limitations. However, you can easily fill in the gaps by combining RUM with synthetic monitoring.
Too Much Data
While the level of detail in RUM data helps for a more accurate diagnosis of user experience, it also has its downfall. It can be too much to go through. That's why you need a RUM solution that can perform root cause analysis despite the sheer amounts of data, and generate prioritized decision analytics. However, no matter how sophisticated your tool, it's better to have as accurate information as you can than not have it at all.
Lack of Benchmarking
RUM is not capable of analyzing your competition. Therefore, RUM solutions can't help you understand how your site's performance fares compared to your competition. Synthetic monitoring can, though, which we explained in this blog post about website benchmarking.
Limited Insights in Pre-production Settings
RUM is not really useful if your website or webapp doesn't have enough traffic, such as late at night. Furthermore, considering that RUM provides insights based on real user sessions, it's unable to monitor the performance of a new app functions or site feature before redeployment. Again, synthetic can.
Conclusion
That concludes our features listing and descriptions. We hope that this list has helped you understand the value that real user monitoring can bring to an organization.
RUM is critical in understanding the real-world performance of your website and in bringing often hidden issues into plain view. Having RUM data can be invaluable in troubleshooting and performing root cause analysis. Combined with synthetic monitoring you can rest knowing that you will know about any issues with your website before you start getting complaints from your end-users.