AppDynamics Application Intelligence Platform

3.8.x Documentation

PDFs

Videos

Release Notes

Identifying and troubleshooting errors in your application.

Error Transactions and Exceptions

Metrics on errors are collected in addition to normal business transaction metrics.

An error is defined as one of the following:

  • An unhandled exception in the context of a business transaction.
    For example:
    • Business transaction entry point -> some code -> some exception thrown -> business transaction finished -> exception caught. In this case AppDynamics reports the exception.
    • Business transaction entry point -> some code -> some exception thrown -> exception caught inside a business transaction -> business transaction finished. In this case AppDynamics does not report the exception.
    (info) If a business transaction experiences an error, it is counted as an error transaction and not as a slow, very slow or stalled transaction, even if the transaction was also slow or stalled. 
  • Any error that is logged with a severity of Error or Fatal using Log4j or java.util.logging (in Java), and Log4Net/NLog (in .NET) even if occurs outside the context of a business transaction. Depending on the signature of the method being called, you might not see an exception stack trace:
    • logger.log(Level.ERROR, String msg, Throwable e) - stack trace available
    • logger.log(Level.ERROR, String msg) – no stack trace here
  • Any exception that occurs during an exit call, for example while calling SQL, a web service, or a message queue server.

An application server exception is a code-logged message outside the context of a business transaction.

There is not a one-to-one correspondence between the number of errors and the number of exceptions. For example, a business transaction may experience a single code 500 error in which several exceptions were logged as the transaction passed through multiple tiers.

You can configure the types of errors that AppDynamics detects as well as the types of exceptions to ignore. See Configure Error Detection.

See the Supported Environments and Versions, such as Supported Environments and Versions for Java document for your app agent to determine if the loggers you use are recognized by default by AppDynamics. If you expect to see errors from a custom logger you first need to configure AppDynamics to recognize the logs. See Custom Logger Definitions.

To Troubleshoot Error Transactions

1. Click Troubleshoot -> Errors in the left navigation panel.

The error viewer opens.

2. Click the Error Transactions tab if it is not already selected.

3. From the time range drop-down menu select the time range for which you want to view information about error transactions.

A graph of the error transactions displays at the top of the viewer. You can get an exact count of the errors per minute at a particular point in time by hovering with your pointing device on the line in the graph.

To the right of the graph is a summary of the load and the error transactions.

Check the Plot check box if you want the graph at the top of the viewer to show the load over the selected time period. Clear this check box is clear, if you want the graph to show only the error transactions .

4. The error transaction snapshots are listed in the lower part of the viewer. To filter this list click Show Filters and select the filter criteria.

5. To examine the root cause of an error, select the snapshot from the list and click View Transaction Snapshot. See Transaction Snapshots for information about examining snapshots.

6. To identify the most expensive calls or queries, select a snapshot from the list and click Analyze and then click Identify the most expensive calls / SQL statements in a group of snapshots.

The Most Expensive Methods / SQL Statements viewer opens.

7. In the lower panel click the Expensive Methods tab to view the methods with their total and average execution times and call counts. Click the  Expensive SQL tab to view the queries with their counts and execution times.


This two-minute interactive video traces the typical steps of identifying the cause of an error in your application.

To Troubleshoot Exceptions

1. Click Troubleshoot -> Errors in the left navigation panel.

2. Click the Exceptions tab if it is not already selected.

The total exception count, HTTP Error Codes and Error Page Redirects for the selected time range are reported in the upper panel. You can get an exact count of the errors per minute at a particular point in time by hovering with your pointing device on the line in the graphs.

The exceptions list is displayed in the lower panel.

  • To filter the exception list, enter the filter term in the search text box on the upper right.  
    For example, to see only HTTP errors - and to see the breakdown of HTTP errors by code type - type HTTP in the search box.  The list of HTTP errors by code is displayed.
  • To see only errors with performance data, clear the Show Exceptions with 0 count checkbox.

3. To view details of a particular exception, select the exception the list in the lower panel and click View Details.
The exception detail window displays.

4. To view transaction snapshots for an exception:

a. In the exception detail window, click the Occurrences of this Exception tab.

b. Select a snapshot from the list.

c. Click View Details.

d. in the snapshot flow map that displays, click Drill Down. See Transaction Snapshots.

5. To view a stack trace for an exception:

a. In the exception detail window, click the Stack Traces for this Exception tab.

b. Click an exception in the left panel.

The right panel displays the stack trace for the selected exception.

Learn More