Real User Monitoring
RUM, also known as, real user monitoring, is an approach to capturing and analyzing every user interaction on your website. It is a form of passive monitoring that determines whether or not users are being served quickly. If the system determines there is a lag in service, it will pinpoint the problem area so that operators may quickly rectify the issue.
Organizations not only use RUM in the production environment to ensure their users aren't experiencing lags in service, they also use it in the predeployment phase. In this case, it is useful to test code changes and anticipated behavioural changes that may, for instance, direct users to an area that otherwise wasn't overly visited. These checks help decrease the likelihood that a website will experience any unforeseen activity when deployed to the production environment.
How it works
RUM is typically referred to as passive monitoring which means it doesn't have any effect on the operation of the site while collecting traffic. In some cases, it uses small bits of JavaScript or native code to gather information from the browser or client.
Monitoring allows operators to visualize what users are clicking, live sessions, behavioural flow, response times, and faulty web pages. These pieces of information can then analyzed and put into a report so that the operator may troubleshoot or fix issues quickly.
Google Analytics - The lightweight RUM
Those who are familiar with Google Analytics are likely already familiar with some of the functionality of RUM systems. With the use of a small JavaScript snippet, Google Analytics can collect information such as page views, click paths, browser versions, traffic sources, conversion tracking, and much more.
Google Analytics is a great tool for lightweight tracking of user information, although for some organizations the use of a full-fledge RUM system such as New Relic or Pingdom is essential. These tools drill down further into what data is being captured and reported on, thus being able to provide greater details.
Steps in real user monitoring
According to the book "Complete Web Monitoring, RUM generally follows these six basic steps.
- Data capture. Real user monitoring captures page and object hits from sources including a load balancer, JavaScript on a browser, etc.
- Sessionization. The data gathered about these hits is reassembled into a record of the pages and components of individual visits, along with timing information.
- Issue detection. Data is analyzed to reveal any problem areas - periods of slowness, problems with navigation, etc.
- Individual visit reporting. Individual visits can be reviewed from captured data either by replaying the screens as the visitors saw them or by viewing the summary.
- Reporting and segmentation. Aggregate data such as the availability of a particular page or the performance on a specific browser can be viewed.
- Alerting. Alert mechanisms are in place to trigger the system in the event issues are detected.
RUM systems perform the steps above all while being designed to be as unobtrusive as possible to a website's performance. There can be a slight latency that occurs with the addition of RUM. However, the amount of information gathered to determine what sections of the website need to be optimized as well as alerts to problem areas, far outweigh the CPU overhead.
Summary
Real user monitoring can be a fantastic asset when a company or organization comes to the point that they need to monitor their web service's performance more closely. Although, based on the sheer amount of monitoring and resources needed to analyze RUM data, it isn't for everyone. Website owners and online businesses alike must define their priorities to determine if RUM is necessary. However, in the event RUM does prove to be a valuable addition, it can greatly help reduce bottlenecks, decrease issues, and leave users feeling happy with the web service provided.