At AppDynamics, we are firm believers in demonstrating the value of our platform as quickly as possible. Many of our customers are able to address critical performance issues within minutes of getting their application instrumented. Below is an example of how we use AppDynamics with a fictional customer, AD-Betting, to analyze and troubleshoot the company’s business environment soon after AppD is up and running.
After allowing AppDynamics to watch the AD-Betting environment for a few hours, we were able to see the company’s environment, how its components were interacting with one another, and user interactions. Here is AD-Betting’s architecture diagram as represented by a close-up view of our Application Flow Map:
First we examined the last hour of AD-Betting’s performance data:
Even without having detailed knowledge of the application, we knew for certain the average response time increase at 3:00 p.m. wasn’t related to a scalability issue, as the load hadn’t increased at the same time.
To investigate the performance issue further, we reduced the time range to cover only the problematic peak. The resulting flow map showed the HTTP call between the tier (aggregator) and the external service (ad-soccer-games.com) took four seconds on average:
With a single click on the aggregator tier, it was easy to identify the impacted business transaction (/quotes):
With a single drill-down click on View Business Transaction Dashboard, we could see how “/quotes” was impacted by this issue. The scorecard for this transaction (below) uncovered a direct correlation between the spike in application response time and an increase in “Slow” and “Very Slow” transactions:
To find the root cause, we switched to Transaction Snapshots view and filtered for slow and very slow snapshots, which AppDynamics had collected automatically. We then picked one snapshot as an example and looked at the Call Graph, which showed the call for method aggregateWithoutCaching in line 217 took five seconds. The connected HTTP exit call terminated with SocketTimeoutException: Read timed out. We also verified this issue with other snapshots at the same time and—voila!—AppDynamics had uncovered the root cause of the performance issue:
To better understand the issue’s impact, we used AppDynamics’ End User Monitoring to analyze AD-Betting’s most important page requests sorted by end-user response time. We immediately spotted the slow end-user experience for FIFA 2018 – All Games, which was an extremely critical component of the company’s business, particularly with the World Cup underway. This was one issue we needed to analyze further.
Looking at the waterfall diagram of all views for this particular page, we discovered that most of the transaction time was spent on the backend, not on the network or browser side:
We then picked a single browser snapshot for closer examination. Since AppDynamics correlates frontend (browser) and backend (Java) automatically, we were able to get an associated backend snapshot as well. In this case, we diagnosed the Call graph and again found the same performance-impacting issue. As you can see, the problem was impacting one of the company’s most important pages:
We hope this simple walk-through of AppDynamics’ powerful monitoring and diagnostic capabilities helps you analyze and troubleshoot your own business-critical environments. Take the AppDynamics Guided Tour to learn more!