What Is Real User Monitoring (RUM)? 

What Is Real User Monitoring (RUM)? 

What Is Real User Monitoring (RUM)? 

By Winston Hearn | Last modified on 2024.02.14

Your customers rely on your web and mobile frontends to access your products. That means these services are the most critical touchpoints for your customers and brand trust. If these services are having issues, you need to know as soon as possible so you can find the problems, resolve them, and keep your customers happy. That’s where real user monitoring (RUM) comes in. RUM solutions collect data from every user session and aggregate them into key performance metrics, so you can be sure that your users are happy.

If you are responsible for ensuring your customers have a good experience using your frontend services, read on to understand what RUM is and how it can help you.

What is real user monitoring?

Real user monitoring (RUM) collects data from users’ interactions with software and applications. RUM involves installing a small package of code in your frontend services for data collection. This package collects metrics and key details about each individual user’s sessions, such as how fast the page loaded, the number of errors on page, and other information that affects SEO and usability. This data is aggregated and displayed on a RUM dashboard, which developers can use to start exploring the data. 

Because RUM data comes from real user sessions, it generates a richer picture of what’s happening on your frontend services than error-catching or synthetic monitoring. RUM data helps you see what the real-world performance of your service is. RUM users can slice the data by device type, page url, and other dimensions to better understand factors affecting performance.

How does real user monitoring work?

RUM data is collected by the RUM code package (often called a RUM agent) installed on your service. 

When a user starts a new session, the RUM tool collects data about the device, network speeds, and performance of your service. As a user clicks through your service, data about the click events, any errors that are thrown, and other relevant session data are continually collected and sent to the RUM service.

The RUM service aggregates all the user sessions to give you an overview of what’s happening. Common metrics displayed on the dashboard are:

  • Page load performance metrics, telling you how fast your pages are loading (including time spent downloading data, and how long it takes for a user to see content).
  • Total number of errors.
  • Geo-location data about your users.
  • Information about Google’s Core Web Vitals metrics.

Synthetic monitoring vs real user monitoring

When discussing RUM, a complementary type of monitoring often comes up: synthetic monitoring. Where RUM is data collected when real users are on your service, synthetic monitoring is data collected from your services without any users involved. 

Synthetic monitoring involves loading up your service in a simulated environment (such as a browser running on a server) and running a defined series of tests on your services. The results of that test are reported in the synthetic monitoring tool’s UI. These tests check to ensure that your critical user journeys are usable, so that you can ship code and avoid regressions.

Why is RUM important?

RUM data helps your developers identify issues on your frontend services faster, which means you can keep customers happy by reducing time to resolution for issues that do arise. Being able to understand who is affected by an issue and what the impact of the issue is on their experience helps your engineering teams better triage and prioritize issues, reducing distractions from shipping new features and helping you build more accurate roadmaps.

The benefits of RUM

Developers who use RUM solutions report the following benefits:

  • They can identify issues and use RUM data to understand the context and potential causes of said issues.
  • They can leverage the RUM dashboard to get a single overview of the health of their system.
  • They can correlate the default metrics with business-specific impact after the addition of custom data.
  • They’re more confident in the system’s stability since they can confirm its state in near-real time.

The challenges of RUM 

Developers who use RUM solutions also report that there are some common challenges:

  • Metrics are helpful for showing there is a problem, but other tools are needed to understand the context. Adding custom context quickly becomes cost-prohibitive.
  • RUM agents can conflict with other code in their services, becoming the cause of issues rather than helping developers identify them.
  • The default data that RUM products collect isn’t relevant to their business concerns or key user metrics, and therefore isn’t the right data for solving common issues.

Key metrics tracked by RUM or RUM uses cases  

RUM solutions are helpful for businesses who care about one or more of the following issues:

  • Customer satisfaction: RUM products help businesses monitor page speed and errors, which are critical factors impacting how happy end users are.
  • SEO: Google factors page load performance in their search rankings, which RUM tools track by default.
  • User experience: Finding opportunities to improve on services and refine critical user journeys is important, RUM solutions allow organizations to easily add custom instrumentation to monitor and understand the flows they care about the most.

How to choose the right RUM tool

Most RUM solutions use similar language to describe their product and features. The key to sorting through which vendor is right for you is to identify what problems you want to solve with RUM.

If your main goal is to set up monitoring of default metrics, most RUM solutions will suffice. But if you seek to solve specific problems, such as:

  • Debugging Core Web Vital issues instead of just monitoring them
  • Monitoring customer journeys beyond initial page load
  • Collecting debugging data for issues rather than monitoring for their existence

You may be interested in RUM solutions that allow you to affordably add custom context to your RUM data.

You will get the most benefit by choosing a RUM solution that allows you to easily connect data from all your services—frontend and backend—to see end-to-end tracing and patterns. This will help your engineering teams use a shared tool to understand the systems they control, helping them communicate better and work faster.

RUM best practices

Once you’ve got RUM set up, follow these best practices to ensure your customers stay happy:

  • Check the dashboards regularly: Every time you deploy, your service changes. RUM is great for seeing the impact of those changes and debugging issues or regressions that might emerge.
  • Add instrumentation as part of your deploy process: If you’re releasing new features, make sure they are properly labeled in RUM data and can be found. That way, every deploy improves your understanding of a service.

Conclusion

Real user monitoring is extremely useful and provides new ways of exploring the same data. We have an active community called Pollinators where you can ask questions about RUM and observability as a whole. Feel free to join us!

Learn more about frontend observability

Additional resources

Blog

Observing Core Web Vitals with OpenTelemetry

read more
Guide

Tracking Core Web Vitals with Honeycomb and Vercel

read more
Blog

Observable Frontends: the State of OpenTelemetry in the Browser

read more
Video

A Practical Guide to Debugging Browser Performance With OpenTelemetry

read more