Application performance monitoring that plugs into the network can see customer transactions and performance behaviors before any other part of the application infrastructure, including agent- and log-based APM solutions.
Traditionally, Application Performance Monitoring (APM) and IT Operational Analytics (ITOA) solutions that instrument the application code have been seen as somehow "closer to the customer", while application analytics solutions based on network data have been seen as "lower level" and less likely to deliver successful outcomes to the customer. This is based on a simplified hierarchy that places customer at the top, application underneath that, and network at the bottom, and indeed this layered view probably originated in the OSI 7-layer model, or others like it.
Roughly speaking, in this worldview, network serves application, and application serves the customer. I believe this view is completely wrong.
In reality today, customers access applications over the network, and therefore application performance analytics solutions that plug into the network can see customer requests and behavior before any other part of the service infrastructure, including agent- and log-based APM solutions. Network data based solutions are therefore much more relevant for delivering customer behavior analytics to the business. Approaches that instrument the application code are important to understand the code behavior and how it could be improved, but are actually further away from the customer, and may offer a false impression of how the customer is experiencing the application.
To understand this, let's suppose you are providing an ecommerce website. Customers can browse the site and purchase items with their credit cards. Let's assume you've deployed both agent-based APM and network-based application performance monitoring. Once a customer request hits your network it will first be seen by the network-based application analytics solution. It will then perhaps go through a firewall, a load balancer, and a few switches before it hits your application server and is first seen by the agent- or log-based APM solution. This request is then processed by multiple tiers – database, payment system, etc. – and ultimately a response is generated. Again, skipping some details, the response is observed by the network-based monitoring solution just as it exits your infrastructure.
(Important Note – Network Ops need to be equipped with a network-based application analytics solution that has full application and transaction visibility, not simply packet capture or SNMP MIB monitoring.)
So, in our example, what performance will be reported by the APM agent? What performance will the network-based solution report? The answer is, the APM solution will ALWAYS report seemingly better performance than the customer actually experienced, and the Network-based solution will ALWAYS be closer to what the customer actually experienced. This is really important and worth restating – the actual customer experience will be more closely reflected by the network-based monitoring than by the APM Agent – every time. In extreme cases, APM might say everything is fine when the customer didn't even get a response.
And this is what we see in deployment after deployment – agents miss problems and present a rose-tinted picture of application performance. This is because agents report on the performance of your application software, but the service you are offering to your customers depends on far more than just your software – it depends on all of the networks, load balancers, servers, databases, service providers and third parties you use to provide the service. Network-based Application Analytics includes all these components and reports on the full service delivered to the customer.
Have you had any experience comparing network-based application performance analytics with agent-based APM? We’d love to hear from you.