View the exception analysis of an application to learn which exceptions the application throws and how often they occur.
Prerequisite
You've integrated an application with Application Monitoring.
Feature entry point
Log on to the ARMS console. In the left-side navigation pane, choose .
Select a region in the top navigation bar and click the application.
NoteIcons in the Language column indicate the application's programming language:
: Java
: Go
: Python- (Hyphen): an application monitored in Managed Service for OpenTelemetry
In the left-side navigation pane, click Application Details.
On the Application Details page, select an application instance, specify a time range, and then click the Exception Analysis tab.
The Exception Analysis tab contains an Exceptions / min stacked bar chart, which shows the number of occurrences of each exception type over time, and an exception list. The exception list contains the Error Count, Stack Trace, and Actions columns. The Actions column provides the Call Statistics, Call chain query, and Details links.
Exception statistics
The Exception Statistics area displays the exceptions of the application within the specified time range.
(Optional) In the Exception Statistics section, you can perform the following operations:
Move the pointer over a chart and view the statistics.
Drag the bars horizontally to view the statistics of specified time periods.
Click the
icon to view metric statistics during a selected time period or compare performance within the same period across different days.Click the
icon to view the API details of the metric.
Exception list
The exception list displays all exceptions that occurred in the application within the specified time range.
(Optional) In the Actions column of the exception list, you can perform the following operations:
Click Call Statistics to view the stacked bar chart of the exception.
Click Call chain query to view the trace details of the interface that threw the exception. For more information, see Query traces.
Click Details to view the details of the exception.
To filter out exceptions, configure them in the Application Settings > Custom Configuration > Advanced Settings > Exception Filter text box.
What is an exception
In ARMS Exception Analysis, ARMS collects only the exceptions that are thrown by instrumented methods. In a real workload, a single interface call may therefore record no exception at all, or one or more exceptions.
For example, assume that the ARMS agent instruments two public int methods, methodA and methodB, and that the two methods call each other. The exceptions that ARMS records differ across the following scenarios.
Scenario 1: methodA and methodB each catch and print their own exception
ARMS does not monitor any exception.
public int methodA() {
try {
return methodB();
} catch (Throwable e) {
e.printStackTrace();
return 0;
}
}
public int methodB() {
try {
return 1 / 0;
} catch (Throwable e) {
e.printStackTrace();
return 0;
}
}Scenario 2: methodA catches and prints the exception, and methodB throws the exception
ARMS monitors one java.lang.ArithmeticException exception.
public int methodA() {
try {
return methodB();
} catch (Throwable e) {
e.printStackTrace();
return 0;
}
}
public int methodB() {
return 1 / 0;
}Scenario 3: methodA and methodB each throw an exception
ARMS monitors two java.lang.ArithmeticException exceptions.
public int methodA() {
return methodB();
}
public int methodB() {
return 1 / 0;
}Scenario 4: methodA wraps and throws the exception, and methodB throws the exception
ARMS monitors one java.lang.ArithmeticException exception and one java.lang.RuntimeException exception.
public int methodA() {
try {
return methodB();
} catch (Throwable e) {
throw new RuntimeException(e);
}
}
public int methodB() {
return 1 / 0;
}