Performance monitoring of web applications is a challenging but critical task. Monitoring, on the whole, is an ongoing process and judged from the end-user’s perspective. Its purpose is ultimately to help you ensure that your users have a good experience on your site, and (hopefully) become loyal, fanatic customers.
Digital consumers have choices and won’t wait around if your site isn’t giving them exactly what they want. First impressions are extremely important on the web, and a monitoring program helps you to monitor and manage the best impressions possible.
There are different approaches to monitoring, each with its own pros and cons; the selection of a particular approach depends on the application’s performance requirements. The two most popular approaches are known as Synthetic Performance Monitoring and Real User Monitoring (RUM).
Synthetic Performance Monitoring
Synthetic Performance Monitoring, as the name suggests, is a monitoring process initiated proactively by external agents (typically lightweight agents) that are meant to imitate actual end users and web traffic. These agents use scripts — that follow similar scenarios to those taken by actual end users — to automate transactions against web applications. Thus, these tests actually simulate user behavior and judge performance accordingly. Additionally, they should cover all the activities which are performed during page loading.
Real User Monitoring (RUM)
Real User Monitoring is a process wherein performance is measured while the actual users are visiting and interacting with the web application. This is a passive approach in which the initiation is done by the actual users — thereby providing insight into the web application traffic. Real User Monitoring is generally performed by embedding Java scripts within the web pages (web page code), which then collect all relevant performance data and send along for analysis.
How Should You Monitor?
The two approaches — Synthetic Monitoring and RUM — serve different purposes, so the preferred option primarily depends on the relevant requirements.
Synthetic Monitoring focuses on availability and reliability, whereas RUM focuses on real user experience. Synthetic Monitoring is sometimes used before a web application goes into production to monitor its behavior, providing a report on the performance expected in the production stage. The same synthetic monitoring script can also be continued in the production environment. Synthetic Monitoring sends a constant stream of synthesized traffic to a website to ensure it is both available and hitting acceptable performance benchmarks. Most Synthetic Monitoring services have a real-time alerting program built right in so your team will always be aware of issues or performance degradations. If uptime and high performance are daily necessities for your online business (think eCommerce, Gaming, Online Banking, seasonal high-traffic scenarios, etc), a Synthetic Monitoring service is essential.
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. Think of it like Google Analytics on steroids. It won’t necessarily tell you when you’re down, but it will show you exactly how users engage on your site.
Synthetic and Real User Monitoring – Better Together
Synthetic monitoring and real user monitoring can be combined to achieve the best insight — both can coexist in the same web application environment. As requirements vary from one business to another, and from one application to another, the best approach may be mixed.
A common approach would be:
Synthetic monitoring for measuring availability and performance trends, followed by
Real user monitoring for measuring service quality and customer behavior.
In the end, the decision is up to you. Take the time to do a proper analysis of your web application’s performance requirements and start monitoring today.