Note: My brain must be on the fritz. Dear readers, I have updated the post as I completely misused the terminology and definitions of Active and Passive monitoring. I apologize for any inconvenience and have updated this post as of September 22nd (3pm PST).
I’ve been asked quite a few times about the distinctions between active and passive monitoring and which is the best method to consider when implementing a monitoring methodology. In this post I’d like to provide a basic introduction to the two types of monitoring and talk briefly about their benefits and deficiencies.
First, let’s start with definitions of these terms:
- Passive Monitoring – Performance/Availability monitoring that uses data sets generated from actual human users of a website or web application.
- Active Monitoring – Performance/Availability monitoring that uses data sets that are generated by a consistent and automated user of a website or web application.
We can see from these definitions that in one case (Passive Monitoring) we are relying on the real world experiences of the existing user base for the website/application, similar in fashion to how web analytic data is collected. In the other case (Active Monitoring) we are relying on the experience of a synthetic user (a piece of software that emulates an end-user’s interaction with a website/application). Let’s start our analysis of the two methodologies by looking at their similar properties:
- Both can provide the same statistics (uptime, availability, errors, throughput, and other performance metrics). Essentially, neither is limited to the basic data sets of performance monitoring solutions.
- Both will reflect accurate measurements that will represent the performance of the server at the time the sample was taken. Stated differently, if the infrastructure for the website/application is under duress then the impact will be reflected in the data that is collected by the monitoring solution. There are fringe cases where this concept breaks down for Passive Monitoring that we will discuss below.
What about the differences in these monitoring methodologies? Here are the basic properties of a Active Monitoring solution:
- Monitoring is performed from an emulated user. This can be as simple as an automated process that makes base level HTTP requests (ex: Unix wget commands) or can be a complex solution using actual browsers for performing monitoring. In either case, we are talking about a user of the website/application that is strictly software based.
- Monitoring is consistent throughout the day and will always attempt to monitor regardless of the state of the website/application infrastructure.
- Monitoring is consistent in configuration of the monitoring environment. That is, every time you monitor the user (automated process) is the same.
And for Passive Monitoring solutions, the properties are:
- Monitoring is performed by actual (human) users. This is done by execution of JavaScript code embedded in the website/application that track the performance that the end user sees while accessing the site.
- Monitoring reflects the actual usage parameters of the end users (ex: browser type, configuration, platform, etc.). This is another way of saying that the end user perspective is accurately represented.
- Monitoring will adapt to the demographic of the users of the website/application.
The end goal of monitoring is really going to be the driving force in dictating which solution is the best. Some companies may want to be able to record the experiences’ of their actual users, in this case Passive Monitoring is the appropriate solution. Passive Monitoring will allow the company to collect samples on performance that are actionable in the sense that they can see what type of browsers are being used, what platforms are most important, which problems are certain users having, how is performance from an exact location. This can help direct the companies efforts when it comes to initial development and improvements of a website/application. The Active Monitoring solution is more in tune with the task of reporting on performance to management, ensuring availability, and tracking SLAs because it is more consistent and has a reliable monitoring base that will not change over time.
Each solution has its faults as well, for Active Monitoring the faults are:
- Does not track experiences of actual users accessing the site.
- Does not provide statistics on browsers and platforms used by website/application end users.
- Does not provide last mile information.
Passive Monitoring has the following faults:
- Monitoring requires JavaScript which can alter the performance of the website/application being monitored and can potentially break or not work all together (if someone has JavaScript turned off).
- Monitoring is subject to spoofing since information about a browser, platform, and other environment variables can been altered by a malicious end user.
- Monitoring data will be sporadic and will only be collected when users are accessing the website/application. No data will be collected during times when users are not on the site. Therefore…
- Issues with the website/application will not be detected until someone accesses the site. This ability to detect problems before customers do is key and central to an on-going monitoring solution.
- If the site becomes unavailable then no monitoring will be performed because users will be unable to interact with the website/application and therefore will not be able to execute the JavaScript that will track their experience.
The final analysis is: Passive Monitoring is great for QA and development purposes. If your product is in Beta or not mature/critical enough for an SLA then this may be the best solution because it provides statistics on how your end users experience your website/application and the specifics of their environments. However, if your application is central to your business or a certain level of service (performance and availability) is expected (even agreeded to) by your customers then you need a more consistent and robust monitoring solution. The Active Monitoring solution is far superior for these types of environments because it guarentees monitoring, consistent monitoring (you don’t have to distinguish samples based on environmental factors such as IE vs. Firefox), early alerting of problems (before your customers see those problems), and provides a basis for reporting performance and availability to others in the organization as well as tracking SLAs.