By default, AppDynamics monitors your production applications for maximum visibility with the least operational overhead. In non-production environments where agent overhead is not an issue, you can enable development mode in AppDynamics. Development mode removes overhead-related restrictions so agents can collect more diagnostic data.
AppDynamics provides the following monitoring modes:
- Production is the default operational mode that optimizes agent performance for your live environment. In production mode, the agent balances transaction visibility with low transaction overhead.
- Development mode is for pre-production or staging environments where overhead is less of a concern. When you activate development mode, AppDynamics disables limits on the number of call graphs and SQL statements to capture, thus increasing visibility into your application. As a safeguard, when the load breaches pre-defined thresholds for development mode, either calls per minute or heap utilization, AppDynamics re-enables the production limits.
Change the Monitoring Level
- Confirm your user account has the proper permissions to change the Monitoring Level. You need "Configure Monitoring Level (Production/Development)" permissions for the application. See Roles and Permissions.
- Define the maximum number-of-calls-per-minute safeguard using the dev-mode-suspend-cpm app agent node property.
- (Optionally for Java only) Define the maximum heap utilization percentage for development mode using the heap-storage-monitor-devmode-disable-trigger-pct app agent node property.
- Click Configure in the application navigation menu and set the level using the Monitoring Level option.
- Confirm that agents have switched into or out of development mode from the Events viewer.
When an agent switches into or out of development mode, it triggers an Agent Diagnostics Event with a summary of "Dev Mode enabled" or "Dev Mode disabled". Similarly, an agent generates an event to indicate it has disabled development mode because the application load exceeded a safeguard limit.
Effects of Using Development Mode
The enhanced monitoring levels of development mode increase agent overhead. To increase visibility and resolution while decreasing data latency, the development mode monitoring level enables the following agent behaviors:
- Exit Calls: AppDynamics relaxes the constraints on collection 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.