Identify problems in your application

Goal of this tutorial

To explain how to use AppMon to find out which applications and transactions have problems, and if those problems are related to the application or the infrastructure.

Problem isolation overview

The first task in any diagnostic process is to isolate the problem. You can do this in high volume and production environments. Your goal is to quickly narrow down the root cause area.

For example, if a transaction has a slow response time, follow these steps:

  1. Isolate the tier that produces the problem. The quickest way to do this is to use the Transaction Flow and look at the biggest contributors.
  2. Dig deeper and look at the biggest contributors inside the tiers.
  3. Dig again and look at the transaction load trend and resource utilization.

This approach quickly traces the response time problem to a particular component or API inside a particular Agent group or specific transaction type Agent. You may also discover that the network latency is at fault.

Use the easyTravel demo application to learn about various AppMon features and functions, and to simulate load, and problems that typically occur.

Detailed steps

1 Identify the Application Problem

AppMon automatically detects applications based on the host or application ID. It also lets you manually configure an application, if automatic configuration doesn't work for you. See System Profile - Applications for more information.

Open the Application Overview Dashboard to see an overview of all the selected System Profile applications. AppMon looks at throughput, response time, failure rate, infrastructure health and user experience.
Applications with problems, like a slow response time that violates the automatic calculated baseline, appear at the top of the list.

The following shows that the Customer Frontend application violates the Response Time baseline. That means that certain business transactions have a response time that violates the baseline. Notice that the underlying infrastructure has health problems that impact the application also. Five out of five associated application processes are unhealthy.

Customer Frontend with Slow Response Time

2 Identify the Application Problem

AppMon learns which URLs you access most often using webpage requests. It uses this information to identify your critical business transactions. To change the Business Transaction view, simply define the business transactions that you add to the Application Overview. See
How to Use Business Transactions for more information.

Click on the problematic application. The following window appears and displays all the business transactions with the problematic ones at the top:

List of All Business Transactions
List of All Business Transactions

See Application Details for more information.

3 Analyze the Transaction Problem Details

The Business Transaction Details tell you if the problem is related to performance, failure or process health. They also tell you if you currently have more throughput than usual, which can also cause unusual behavior. The following shows that the response time surpasses the automatically calculated baseline. This is why AppMon is alerted.

Business Transaction Details with Slow Response Time
Business Transaction Details with Slow Response Time

AppMon automatically calculates baselines for median response time (50%) and the slowest 10% of response time (90%). It also calculates a baseline for the failure rate and calculates the expected throughput per transaction, based on historical throughput data. If any of these values cause a baseline violation, drill into more details such as the Response Time Hotspots dashlet, Transaction Flow dashlet or Errors dashlet.

See Business Transaction Details for more information.

4 Analyze Response Time Hotspots

If the problem is related to degrading response time, the first step is to drill to the Response Time Hotspots.
The following image shows that one particular API is responsible for almost 70% of the response time that executes on one particular agent:

Response Time Hotspots
Response Time Hotspots

Click on the problematic API to see the Method Hotspots dashlet. This displays which methods are slow to execute, and who is calling these methods.

The following image shows that the UserLoginEnhancer class is waiting for data with a call to Object.wait. This contributes almost 70% to the business transactions' response time.

Method Breakdown by Wait Time
Method Breakdown by Wait Time

5 Analyze Transaction Flow and Host Health

Drill into the Transaction Flow dashlet** for another way to analyze application problems. The Transaction Flow provides an overview of the application tiers associated with this business transaction. Use the Transaction Flow to determine the following:

  • Do certain tiers have a problem?
  • Is there too much time spent between tiers?
  • Is there too much traffic on the database?
  • Are there problems outside the data center, such as third party content?

In addition to analyzing the Transaction Flow, you can get information about the supporting infrastructure. Every node shows host and process health. This gets calculated on different dimensions. The following image shows that the host that runs the Customer Frontend application has a CPU Problem.

Transaction Flow
Transaction Flow

Click Show Host Health. The Host Health Overview shows that the host has a very high CPU utilization. You can also see which application components run on that host (top right). This lets you determine if the CPU overhead is the result of these components, or another process running on the machine.

The Host Health Overview
The Host Health Overview

See Follow Your Transactions with Transaction Flow for more information on how to analyze the Transaction Flow. See Host Health Monitoring, Process Health Monitoring for more information on host and process health.

Conclusion

The Application Overview makes it very easy to locate problems in individual applications, a specific business transaction or in your infrastructure. The following tasks help to identify problems in your application: