Product

Key Questions to Ask APM Vendors

By | | 3 min read


Summary
At AppDynamics, we focus on listening to our customers and their needs.  We’ve also noticed their surprise and delight when they see our technology in action and realize they can defy the conventional wisdom of how Application Management can work.

At AppDynamics, we focus on listening to our customers and their needs.  We’ve also noticed their surprise and delight when they see our technology in action and realize they can defy the conventional wisdom of how Application Management can work.

Over the last year, we’ve collected a short-list of key questions that APM buyers should ask to ensure they get the solution that best fits their needs.  For example, some products like profilers are best suited for development environments, but are ill-suited for production.  The same distinction is true of APM products.

Many APM vendor solutions will work for you if you have a relatively simple environment.  However, if your environment has any of the characteristics below, you’d be well served to dig deep into vendor capabilities:

Here are the questions we recommend companies ask prospective APM vendors:

Fit for Production Environment

  • What is the overhead in production if I want visibility into every class & method?
  • When setting up the system, am I forced to make compromises on level of visibility to be able to have an acceptable level of overhead?  Why am I forced to make that compromise?
  • Do you recommend that client’s instrument every class & method?  If not, why not?
  • Does your product have different instrumentation “modes” for Development versus Production? If so, why?
  • Can the system scale to support thousands of reporting agents to a single management server?

Fit for Highly-Distributed or SOA environments

  • Has your user interface been designed for users to monitor the health of individual Application Servers or does it enable the monitoring of distributed Business Transactions?
  • How does the product automatically discover and visualize the relationship between services and the back-end tiers?
  • What technology approach is used to track & follow business transactions across the distributed environment and provide code-level diagnostics at each tier?
  • What percent of my business transactions will it discover out-of-the box?
  • Can the product identify communication problems between the tiers/services in a SOA environment?

 

Fit for Agile Environments

  • Does your product require me to manually instrument the code?  If so, how long does this take per application?
  • When agile code is introduced, does the instrumentation have to be manually updated?  If so, how much time does this typically take your clients?
  • Does your product allow me to easily analyze the how a new release may have degraded application performance and pinpoint the root cause down to the code level?

 

Behavior Learning

  • Does your product continuously learn the normal performance of the application or do I have to set manual thresholds?
  • Can it track different seasonalities?
  • Can it learn “normal” deviation patterns and take action automatically based on what it observes?
  • Does the system automatically adapt to dynamic changes in capacity in a virtualized or elastic computing environment?

Easy-to-Deploy & Use

  • Can I deploy the product myself in less than an hour?  Or do you recommend that I have your consultant assist me in the deployment?
  • Does your product user interface require experts to interpret the data when problems happen and rely on them to determine root cause? Or, does the product pinpoint root cause automatically?
  • Does your product have an intuitive design that I can I access your product from a web browser?

 

Reducing your Mean-time-to-Resolution (MTTR) with Troubleshooting & Root Cause Diagnostics

  • When a problem occurs, is diagnostic data automatically captured or do I have to manually trigger a diagnostic session?
  • Are there code-level diagnostic automatically captured for every bad session?
  • How does the product distinguish one-time anomalies from consistent patterns of poor performance?  What actions does the product take when it detects systemic failures?
  • Does the product provide specific diagnostics for each of the following:
    • Slow response
    • Errors
    • Stalls
    • Deadlocks
    • Malformed code
    • Slow SQL/DB access
    • Memory Leaks & Thrash
    • Distributed service communication issues
    • Synchronization issues

This is just a short list.  It probably won’t make us very popular with legacy APM vendors, but we’re here to make you successful, not them.