Development level monitoring is a mode in which certain default limits on the data that AppDynamics collects are disabled, giving you additional visibility on application activities. This topic describes development level monitoring.
What is Development Level Monitoring?
AppDynamics monitors your production applications in a way that is designed to provide maximum visibility with the least amount of overhead.
This default mode, called production level monitoring, applies limits on the retention of certain types of information. In a testing environment or other environments where overhead is not an issue, you can enable development level monitoring. Development mode is intended for temporary use while setting up AppDynamics or for occasional application troubleshooting.
You apply development monitoring to a specific business transaction and originating node combination. An originating node is one or more of the nodes that serve as the entry points for the transaction.
Transactions originating on an enabled node are subject to development level monitoring on downstream nodes that participate in processing that business transaction. Note that this applies for that business application only, however. Processing for a continuing transaction in another business application is not monitored at the development level unless you have enabled development level monitoring at the continuing business application as well.
While development monitoring increases the retention of call graphs and SQL statement capture, certain limits still apply. The limits specify maximum thresholds for calls per minute, Java heap utilization, and snapshot segments generated across the Controller. If the thresholds are exceeded, development level monitoring is disabled. See Development Level Monitoring Limits for more information.
Effects of Development Mode
Enabling development level monitoring affects the capture of the following information:
- Exit Calls: AppDynamics increases information collected for exit calls to backend systems. For database backends, the agent collects all SQL statements without per-transaction limits. The agent also collects all JDBC and ADO.NET calls attached to methods, even when the call duration is less than 10 ms.
- Snapshots: The agent attempts to take a snapshot for every transaction, ignoring the values for the following agent node properties:
Development mode does not guarantee snapshots for every transaction since it was not designed to capture data on every request.
- Call Graphs: The agent captures full call graphs in development mode.
Users must belong to a role with the "Configure Monitoring Level (Production/Development)" permission for the application to set development level monitoring. See Roles and Permissions for more information.
Enable Development Level Monitoring
You enable development level monitoring in the context of a particular business transaction/originating node combination. To avoid exceeding development mode limits described in Development Level Monitoring Limits, it is recommended that you enable development monitoring at the smallest scope possible.
To enable development level monitoring:
- In the business application for which you want to enable monitoring, click Configuration > Development Level Monitoring.
- Enable the Development Level Monitoring switch at the top of the page.
For agents earlier than version 4.3, enabling development level monitoring applies globally, rather than for a particular business transaction. For 4.3 agents and higher, you need to configure the business transaction and node to which the configuration applies, as described in the following step.
- Select the Business Transaction for which you want to enable development monitoring.
- Click the Enabled checkbox next to the originating nodes on which you want to enable development level monitoring.
The following screenshot shows the development level monitoring controls:
Disable Development Level Monitoring
Even in pre-production environments, enabling development level monitoring would normally be a temporary measure done in select cases. When finished, disable development level monitoring for the business application, as described here.
To disable development level monitoring:
- In the business application for which you want to disable development level monitoring, click Configuration > Development Level Monitoring.
- Use the Development Level Monitoring switch at the top of the page to disable develop level monitoring. The switch disables such monitoring for all business transactions in the business application.
Development mode may also be disabled automatically, as described in the next section.
Development Level Monitoring Limits
The following agent-applied and Controller-applied limits prevent excessive resource consumption during development mode.
App Agent Limits
For an app agent, the following limits apply:
- For each node, a maximum of 500 calls per minute. (See dev-mode-suspend-cpm.)
- For each JVM, the maximum heap utilization percentage of 90%. (See heap-storage-monitor-devmode-disable-trigger-pct.)
If a limit is exceeded, an agent log event is generated indicating that development mode has been disabled because limits were exceeded
The Controller monitors the number of snapshot segments collected during development monitoring across business transactions. A snapshot segment corresponds to the processing activities for a business transaction on a particular tier. A single business transaction that traverses many tiers can generate more data than several business transactions that only traverse a few tiers.
When the threshold of 5000 snapshot segments per minute is exceeded, the Controller disables development mode for the top contributing business transactions. The Controller disables development mode on as many business transactions as are needed to reduce the snapshot segment contribution by 20%.
For example, if a single business transaction is accountable for 25% of the snapshot segments when the threshold is exceeded, only it is disabled. As another example, given the following business transactions and the percentage of snapshot segments, they each contributed when the threshold was exceeded, the first two are disabled:
- BT1: 17%
- BT2: 16%
- BT3: 15%
- BT4: 15%
- BT5: 13%
- BT6: 12%
- BT7: 12%
This Controller limit is not configurable.