learn

The guide to synthetic monitoring

Synthetic and Real User Monitoring Explained

Website monitoring solutions play a significant role in maintaining the performance, availability, and reliability of the digital world.
An ideal monitoring strategy allows you to understand precisely where to improve the website or application and how well it performs compared to your competitors. Most monitoring solutions provide either passive or active monitoring. Real user monitoring (RUM) is a passive monitoring tool while synthetic monitoring is a type of active monitoring. Here, we discuss how these differ and how the most robust monitoring strategy includes both RUM and synthetic.

Real User Monitoring (RUM): Overview

Real user monitoring, also known as real user measurement, real user metrics, and end-user experience monitoring, tracks performance data from real users accessing your website or application. The performance data gathered from RUM is diverse because it tracks the complex ways in which users really navigate your apps. The end user could be using a combination of any browser, any ISP or any device in any location.

RUM is implemented by adding Javascript tags to the application code. The script triggers when a user accesses the application, and it gathers data for different performance metrics, such as how long a page takes to load or performance bottlenecks. This data, based on real user interactions, is relayed back to the RUM platform, letting you analyze performance and understand real user behavior.

RUM is a form of passive monitoring, which relies on services that observe the system in the background, tracking availability, reachability, responsiveness, and functionality. RUM data helps a business better understand its users by giving full visibility into application performance, helping identify which areas of its site need optimization and focused attention. It can also provide a historic perspective, allowing you to determine performance trends over time.

{{banner-16="/design/banners"}}

Synthetic Monitoring: Overview

An alternative approach to website monitoring is synthetic monitoring. This is an active monitoring method that instead of collecting real user data, gathers performance data using agents that simulate real users. Synthetic testing is pre-configured for simulation, meaning that the traffic is manually generated to monitor the performance of a website or application with a controlled set of variables, such as geography, network, device or browser. It can be especially useful for exercising areas of the application that experience less traffic, or identifying problems arising from less commonly used geographies, networks, and browser types. You can use synthetic tests to replicate multiple user journeys, meaning that potential performance issues can be identified before they impact the end user.

Synthetic may also be used to test websites and web applications in pre-production, so you can baseline performance and set appropriate alert thresholds once an application or website is live. As synthetic monitoring does not require embedding code snippets in the application or website, users can analyze the performance of competitors by setting up monitoring of their websites and applications. This means you can benchmark your performance against major players in the industry.

Synthetic monitoring globally tests a digital service from Internet points of presence, wireless providers, and public cloud providers.
Synthetic Monitoring simulates users from global test points

{{banner-17="/design/banners"}}

Real User Monitoring vs. Synthetic Monitoring

RUM and synthetic are a very different type of monitoring in the way they are implemented and how each one works, but both help keep track of website and application performance in important ways. Both provide valuable insight into user behavior, network latency or bottlenecks, performance trends, and the overall health of the web application.

"Both RUM and synthetic monitoring tools aim to improve application performance by providing insight into every step within the application delivery chain. Only choosing one monitoring type will not result in an ideal strategy. Synthetic and RUM complement each other. A comprehensive monitoring solution should include both monitoring types to get a 360-degree view of your website or application and help you ensure it is not only fast, reachable, and reliable, but also customized for the real needs of your end user."

When evaluating the two monitoring types, you should first look at the value each adds to your monitoring strategy.

Real User Monitoring (RUM) injects a JavaScript in Internet browsers to collect performance metrics.
Real User Monitoring (RUM) injects a JavaScript in browsers to collect performance metric

{{banner-18="/design/banners"}}

The Benefits of Synthetic Monitoring

Synthetic monitoring allows you to:

  • Simulate the user journey in a controlled environment
  • Run tests at scheduled intervals (e.g., every 5 minutes) to proactively capture potential issues
  • Build tests based on key business transactions (e.g., logging into an application service)
  • Monitor complex transactions and processes (e.g., checking out a shopping cart)
  • Test at every stage in the production lifecycle (e.g., User Acceptance Testing, Beta, GA)
  • Exercise areas of the applications that receive a low amount of live traffic
  • Test reachability from less common geographies (e.g., South America) and networks (e.g., a wireless provider in Brazil)
  • Analyze performance trends from the vantage point of various geographies

Synthetic monitoring helps you:

  • Run 24/7 monitoring
  • Reduce MTTR (Mean Time to Resolve) as the tests actively track application performance
  • Receive alerts whenever there is a notable variation in performance metrics, including downtime
  • Gather performance data in a pre-production environment in the absence of real user traffic (RUM is meant for use in a production environment)
  • Benchmark your service against competitors
  • Track service level agreement (SLA) breaches (e.g., ensure that your application loads in less than 5 seconds from any location in the world 99.999% of the time)
  • Monitor performance of third-party services, including using A/B testing

{{banner-3="/design/banners"}}

The Benefits of RUM

RUM monitoring allows you to:

  • Gather data from real end users across a variety of environments
  • Collect diverse data for every user accessing the application
  • Configure customized variables in JavaScript to track and collect custom application-specific data
  • Monitor live user experience in real-time (e.g., the users currently active on your website)
  • Record screenshots or filmstrips of experiences by real users on your website

RUM monitoring helps you:

  • Capture real end-user experiences from different devices, browsers, geo-location, etc.
  • Correlate user engagement and business KPIs with application performance
  • Calculate conversion ratios based on user engagement metrics (e.g., what percentage of users clicked on a specific link)
  • Utilize historical usage data to forecast  web performance trends and business outcomes

What Type of Monitoring Do You Need?

Both RUM and synthetic monitoring tools aim to improve application performance by providing insight into every step within the application delivery chain. Only choosing one monitoring type will not result in an ideal strategy. Synthetic and RUM complement each other. A comprehensive monitoring solution should include both monitoring types to get a 360-degree view of your website or application and help you ensure it is not only fast, reachable, and reliable, but also customized for the real needs of your end user.

{{banner-19="/design/banners"}}

How RUM and Synthetic Complement One Another

The examples below illustrate three ways in which RUM and Synthetic complement one another.

Correlating Business with Performance

Synthetic monitoring can provide the performance data you need to analyze end user experience, enabling you to pinpoint problems with page load time, or network bottlenecks.

However, if you want to analyze exactly how web performance impacts business revenue, then you need more than synthetic performance metrics. Since RUM is generated through real user traffic, it provides essential insight into real business metrics, such as conversion rates, which can then be correlated with the continuous performance metrics collected from synthetic testing.

Identify Problems Before Active Users Arrive

Global daily application usage has cyclical patterns based on when users are awake and active in each part of the world. Applications hosted in public cloud environments are often replicated in multiple geographies (e.g., US, Europe, Asia) to reduce latency experienced by end-users. It is common for infrastructure maintenance to occur during off-peak hours, such as midnight in local time, which can cause occasional unforeseen application problems.

Synthetic monitoring is the most effective solution to identify a configuration problem caused by an off-hours maintenance change so that it can be fixed before users begin using your application service in the early morning hours. On the other hand, RUM would be the most helpful tool to measure application responsiveness for each and every live user during the peak hours.

Testing Applications in a Staging Environment

Since RUM collects data in real time while an actual user accesses the application, it is not possible to use RUM data to gauge the performance of new features in a pre-production environment. In such a scenario, synthetic monitoring allows you to test the impact of changes to the application before they go live. RUM data is an added advantage here, however, since it provides real use cases that can then be used for simulation using synthetic monitoring for detailed testing in a staging environment.

Troubleshooting Outages

Combining synthetic and RUM data can make troubleshooting quicker and easier. When synthetic tests fail or trigger an alert, data gathered from RUM will show you the real time impact on end-user experience. Similarly, if RUM data reveals a performance anomaly then you can use synthetic to replicate the issue by exercising the same transaction across a number of ISPs and geographical locations. Collecting data in this way allows you to triangulate from various vantage points to identify the root cause that may lie in the data path between end-users and your application service. RUM and Synthetic can be used simultaneously to verify and deep-dive into performance issues.

{{banner-sre="/design/banners"}}

Conclusion

RUM and synthetic monitoring provide different types of insight into how well your application performs. RUM helps with understanding long-term trends based on usage patterns, while synthetic helps you consistently detect and troubleshoot shorter-term performance issues even in the absence of real user traffic. Although using one or the other will help analyze performance in different ways, combining synthetic monitoring with RUM results in a more comprehensive and robust monitoring strategy that provides you with full visibility into the experience of your end users.

Chapters