AppDynamics collects and reports key performance metrics for individual threads in multithreaded Java applications.
In addition to support for applications written in Java, applications running in the JVM that are written with Groovy are also supported. Groovy classes can be intercepted, servlets are detected by default, and exit calls and thread correlation are supported without any additional configuration.
See Configure Asynchronous Transactions for information on viewing thread related metrics. This page describes how to configure thread monitoring.
Classes for multithreaded correlation are configured in the <excludes> child elements of the <fork-config> element in the <agent_home>/conf/app-agent-config.xml file.
The default configuration excludes the java, org, weblogic and websphere classes:
Note: The agent supports package names where the levels in the hierarchy are either separated by dots (.) or slashes (/). The agent converts the dots to slashes internally.
You can edit the app-agent-config.xml file to exclude additional classes from thread correlation. All classes not excluded are by default included.
Use the <excludes> element to specify a comma-separated list of classes or packages to be excluded. Use the singular form, <exclude>, to specify just a single class or package.
For includes, you must specify each package or class individually using the <include> element.
You can include a sub-package or subclass of an excluded element by specifying the sub-package or subclass with an <include> element. If a classname is matched by both an exclude and include pattern, the more specific pattern matched prevails. That it, an include match with
org.example.myclass prevails over an exclude match for
Managing Thread Correlation Using a Node Property
Disable Asynchronous Thread Correlation
Monitoring asynchronous transactions can be a relatively resource-intensive operation. If you want to disable thread correlation, you can disable it as follows:
- Click Configuration > Instrumentation > Transaction Detection.
- From the Actions menu, click Disable Async Monitoring.
- Restart the agent.
Depending on the agent type, you may be able to disable asynchronous monitoring at the agent as well.
Disable Thread Correlation at the Agent
To disable thread correlation (which will disable end to end asynchronous transaction monitoring as well) at the agent, use one of the following approaches:
Set the Java Agent node property thread-correlation-classes-exclude to disable asynchronous monitoring for all the relevant classes.
Add the following line under the fork-config section of the app-agent-config.xml file.
Restart the agent to have the change take effect.