Top Application Performance Monitoring Techniques

by | Aug 9, 2022 | Application Performance, Network Performance

Learn about the common ways to monitor application performance: APM (application performance monitoring), NPM (network performance monitoring), RUM (real user monitoring) and synthetic application performance monitoring.

Boris Rogier

Boris Rogier

Co-founder

Top APM application performance monitoring approaches

IT and SRE / DevOps teams rely on application performance monitoring to efficiently resolve end user complaints, troubleshoot application performance issues, and proactively optimize end user digital experience. There are a number of ways to monitor application performance in production, including APM (application performance monitoring), NPM (network performance monitoring), RUM (real user monitoring) and synthetic application performance monitoring. Application performance monitoring tools broadly measure application availability and response times, and provide insight into the main infrastructure layers and components that define application performance including servers/hosts, networks and end-user devices.

APM – Application Performance Monitoring

APM application performance monitoring solutions typically rely on agents running on application servers to measure response times, track errors, monitor and inspect code execution. Many software companies have developed agent-based application performance monitoring solutions including Introscope APM from CA (now Broadcom), Dynatrace, AppDynamics (now part of Cisco), NewRelic and Elastic.

These application performance monitoring solutions cover a specific set of application frameworks they can inspect and perform measurements on. This class of application performance monitoring tools require additional processing from the servers hosting the monitored applications, but deliver deep insights into how the application is performing, and which part of the code executes slowly.

The main challenges around implementing APM application performance monitoring tools are:

  • Coverage of application frameworks (new frameworks, client-side executed code, micro-services based architectures)
  • APM solution performance overhead
  • Inability to access and monitor SaaS, PaaS, and 3rd-party application components and services
  • Lack of in-depth network (path), transport and session layer monitoring capabilities (OSI layers 3, 4, 5)

APM can be great at revealing the execution of the application itself, but does not provide visibility into the path, services and infrastructure between users and application frontend components, or how they impact user experience and application response times.

NPM – Network Performance Monitoring

NPM network performance monitoring–or NPMD: network performance monitoring and diagnostic–solutions rely on capturing network traffic and analyzing the network communication between clients and servers (or between servers). NPM performance monitoring tools inspect the different layers of network communication to deduce response times and errors at the network level (TCP/IP), and at the application level (HTTP) when traffic is unencrypted, or can be decrypted in near real-time.

These solutions extensively cover low-level network and transport protocols, TCP and UDP to a lesser extent, and selected application level protocols (HTTP, database protocols, VoIP, FTP, DNS). Examples of NPM vendors include Extrahop, Netscout and Riverbed, all which have broadened their focus toward security and infrastructure management as NPM techniques become increasingly less effective and more difficult to deploy.

The main challenges around the implementation of NPM network performance monitoring solutions are:

  • Traffic capture is often impractical:
    • in virtual, software-driven data centers / SDNs, private and public cloud environments.
    • when application components and / or users are highly distributed.
  • Encryption impairs traffic analysis: The latest implementations of TLS rely on dynamic / ephemeral key exchanges that prevent man in the middle interception / decryption.

RUM – Real User Monitoring

Real User Monitoring is an application performance monitoring approach that consists of inserting a javascript reference into web application code. When a user visits the site, their browser executes the script and consequently shares browser level analytics with the RUM platform. RUM solutions include Datadog, New Relic and Dynatrace real user monitoring tools.

RUM is great at providing visibility into the actual experience of real users from their context. End-to-end application performance is measured from their vantage point, as they perceive it, reflecting their connectivity, device type, browser version, etc…

The main challenges facing RUM solutions are:

  • RUM only applies to web applications.
  • RUM provides little insight into performance issues occuring within application platforms (front and back end servers and their interaction); its insight is limited to the breakdown of response times for the main infrastructure elements between users and the application platform.
  • RUM only provides analytics when actual users access the application.

Synthetic Monitoring

Synthetic monitoring–or active monitoring–simulates users with software agents that replay predefined scripts, then measures the resulting performance of these transactions. Synthetics testing can be tailored to monitor typical user scenarios (e.g. application availability, page load times, etc.) to check the proper execution of the application.

Synthetic monitoring is an ideal approach to verify the performance of an application’s main features, establishing baselines and trending performance over time. Splunk, ThousandEyes (Cisco) and Catchpoint offer synthetic monitoring solutions, competing with a wide range of open source solutions.

The main challenges of synthetic application performance monitoring solutions are:

  • Testing coverage and accuracy is only as complete as the number of scenarios created; it’s incapable of simulating all the ways real users interact with applications.
  • Synthetic testing can never represent the variety of user locations, connectivity, devices, and browsers that influence application performance and end user experience.
  • User experience measurement: traditional page load and performance metrics captured by synthetic monitoring tools do not accurately represent the user experience of transaction-centric, single-page applications.
  • Maintaining test scenarios is an ongoing, time consuming and defensive activity. Frequent application updates can break scripts when site navigation and behavior changes.
    • SaaS and 3rd-party applications are likely to change without notice
    • Updates may not be applied to all users and regions at the same time
    • The increased adoption of CI/CD and microservices-based architectures exacerbates these issues

Comparison of Main Application Monitoring Techniques

Application Performance Monitoring Techniques Pros Cons Limits
APM
  • Deep visibility in application code execution
  • Processing overhead
  • No visibility on the user to app path and its impact
  • Only available for certain app frameworks
  • Does not apply to PaaS, SaaS and 3rd party app platforms. 
NPM
  • Provide estimated response times for many application flows and some more application level metrics for some protocols
  • Traffic capture in virtual, software driven and cloud environments is a challenge
  • New encryption techniques reduce visibility to transport layers at best
  • Complex to implement
  • Complex data interpretation
  • Unsuitable for distributed environments
  • Unsuitable for cloud-based and SaaS applications
  • Important visibility gaps when applied to hybrid and composable applications
RUM
  • Provide great performance insights on user performance for web applications
  • Inexpensive and easy deployment
  • Tracks real user transactions and context
  • Only produces insight when–and from where–users access the application
  • Does not provide visibility on internal application processes
  • Only works for web applications
Synthetic Monitoring
  • Data is easy to interpret
  • Results not dependent on users accessing the application
  • Scenario coverage limits monitoring granularity
  • Unfit for troubleshooting (not an accurate reflection of real user behavior) 
  • Scenario maintenance can be costly
  • Limited user experience measurement accuracy with single page applications (SPA)
  • Primarily used to monitor web applications

 

Combining Application Performance Monitoring Approaches

No single application performance monitoring approach covers the full spectrum of infrastructure, layers and hosts that constitute modern cloud-hosted web and SaaS applications. NPM, APM, RUM and synthetic application performance monitoring tools each offer a unique perspective, but even taken together they can’t resolve network path performance, the contribution of SASE/CASB security solutions, highly distributed poly-cloud hosting, composable apps and the impact of bring-your-own devices like tablets and Chromebooks.

Application Performance Monitoring Coverage of NPM, APM, RUM and synthetic performance monitoring

Kadiska takes a different approach. Our platform combines the best of APM, NPM, RUM and synthetic testing to overcome the visibility gap left by traditional application and network monitoring solutions. With full 360° visibility into network path performance, application performance and users’ digital experience, IT teams can quickly collaborate to resolve vexing performance issues and proactively optimize applications and infrastructure to drive enhanced business productivity.

Learn how Kadiska can help you solve your challenges

Share this post

Newsletter

All our latest network monitoring and user experience stories and insights straight to your inbox.