What is the difference between synthetic monitoring vs. real user monitoring (RUM)?
Performance monitoring of web applications is a challenging and critical task. This monitoring is an on-going process and judged from end-user’s perspective. There are different approaches with their own pros and cons. The selection of a particular approach depends on the application’s performance requirement. In the next section we will have a look at the two most popular approaches known as ‘Synthetic Performance Monitoring‘ and ‘ Real user Monitoring’ (RUM).
Synthetic Performance Monitoring: Synthetic performance monitoring, as the name suggests, is a monitoring process that is initiated proactively by external agents. External agents use scripts to automate transactions against web applications. These scripts are having similar steps which are supposed to be followed by the end users. So these tests actually simulate the user behaviour and judge the performance. Synthetic monitoring is generally performed by light weight agents. But they should cover all the activities which are performed during page loading.
Real user Monitoring (RUM): Real user monitoring is a process where the performance is measured, when the actual users are visiting and interacting with the web application. This is a passive approach where the initiation is done by the actual users. It provides an actual insight as the traffic to the web application is original. Real user monitoring is generally performed by embedding Java scripts within the web pages (web page code).These scripts collect all the relevant performance data and send for analysis.
Which one is preferred? The two approaches, synthetic and RUM serve different purposes. So the preferred approach mostly depends upon the requirement. Synthetic monitoring focuses on the availability and reliability side where as RUM focuses on the real user experience side. Synthetic monitoring is sometime used before a web application goes into production to monitor its behaviour. It gives a report on the performance, which is expected to be reflected in production. The same synthetic monitoring script can also be continued in production environment. On the other hand, RUM reflects the actual usage of your web application. As it is not script dependent, the amount of time and resources is not a significant factor. RUM also helps to track the geographic distribution of users and its impact on the end user experience.
Conclusion: Synthetic monitoring and real-user monitoring can be combined to get the best insight. They can always co-exist in the same web application environment. As the requirement varies from one business to another, the selection can be a mixed approach or single approach. The common recommendation can be defined as follows.
· Select synthetic monitoring for measuring availability.
· Select real-user monitoring for measuring performance.
But again, the best judgement should be taken after doing a proper analysis of your web application’s performance requirement.