Calls from an instrumented node to a database are recognized as traffic related to specific business transactions. Through the App Agents, AppDynamics monitors the performance of calls to databases, oriented by business transaction and oriented by the overall performance of calls to individual databases.
Measuring Database Performance
Metrics for the database calls and response times are collected at four levels:
- Business transaction metrics: The metrics for a specific business transaction for a specific database are visible on the transaction flow map.
- Tier metrics: The metrics for all calls from a tier to the specified database are visible on the tier flow map.
- Database call metrics: The overall database access metrics across the application (all business transactions) are visible on the application flow map and the Database Calls dashboard.
- Internal database metrics
- When a database collector has been setup in AppDynamics Database Monitoring, you can link to that product from the Application and Database Calls dashboards. If you have already associated the database with a Database Collector in Database Monitoring, the Database Monitoring UI opens. If not, you are prompted to link a Collector configured in Database Monitoring.
When AppDynamics Pro has been integrated with AppDynamics for Databases, you can link to that product by right-clicking on a database from the database list or from the database icon on any flow map. See AppDynamics for Databases.
- When AppDynamics Pro has been integrated with Compuware Strobe, you can view an SQL query in a transaction snapshot that accesses a DB2 z/OS database.
You can also customize the discovery and naming rules and configure the detection of additional databases. See Backend Detection.
To monitor call performance to a database, confirm that it appears in the Databases Calls list and has its own Database Calls dashboard. If a database is not appearing, check the configuration.
View Database Performance on Flow Maps
Databases detected during the specified time window show up on the Application Dashboard flow map, where you can view them in the context of the entire application's transaction flow. The application flow map displays calls per minute and average response time for calls made to databases. These metrics include all calls made from a specific tier to a database across all business transactions. The tier and node flow maps display a similar metric aggregating data from calls across all business transactions by tier or node respectively.
The detected databases appear on the Tier Flow Map, where you can view them in the context of the traffic on this specific tier.
For business transactions involving calls to databases, the databases appear on the Transaction Flow Map, where you can view them in the context of the traffic for this specific business transaction. The transaction flow map shows the average time spent in database calls for the business transaction.
Resolving an unexpected database on the flow map
If you intermittently see a connection from an application to a database on the flow map that you do not think was being called by that application, try the following to determine why this database appears:
- From the left navigation menu, select application > Servers > App Servers > Databases. Select the Slowest Database Calls tab and drill down into the snapshots to see the code that is calling the database. See To troubleshoot slow database and remote service calls.
- Run a diagnostic session to capture some transaction snapshots and look for calls to the database. See Using Diagnostic Sessions and Transaction Snapshots. If you have integrated AppDynamics for Databases, you can select a transaction snapshot that involves running SQL on an Oracle database and from the Transaction Flow Map you can link to AppDynamics for Database to see all queries executed in the SQL session that are associated with that transaction snapshot. See Use AppDynamics Pro with AppDynamics for Databases.
- Are any exceptions thrown when the database is seen? If so, look for error snapshots that point to the exception trace.
View Discovered Databases
The database list shows all databases that have ever been detected, along with key performance indicators. Stale databases can be configured to be automatically removed.
From the database list, you can select a database and click View to see the Database Calls dashboard. The dashboard displays a Database Flow Map, database properties, and Dynamic Baselines.. The database properties indicate how the agent identifies the database and control how it shows in the display map and how the metrics are aggregated. For a discussion of baselines and how they are used and configured, see
The database dashboard has two tabs and an action option menu:
- Dashboard: Displays the flow map showing traffic from the calling tier to the database, the backend properties used for auto-detection and naming, and key performance indicators.
- Slowest Database Calls: Lists up to ten calls to the database with the longest execution time, by tier and for all tiers. See Slow Database Calls.
The Action menu provides additional actions:
- Rename Backend: Renames the database.
- Resolve Backend to Tier: Associates the database with the tier that you select so that the backend appears in the grid view of the tier and not as an independent component ("unresolved backend") on the application dashboard flow map. You can reverse this operation from the Configure Backends resolving to this Tier item in Actions menu in the tier dashboard.
- Delete Backends: Removes instances of the database from the controller and all agents. An agent can re-discover the database and register it with the controller.
You can access the Database Server List by click Servers > Databases.
Slow Database Calls
AppDynamics displays a list of the slowest database calls. For each call, you can view specific call details and related business transaction snapshots. The list shows up to ten database calls with the longest execution time over the selected time frame, by tier and for all tiers. Each call shows the following information:
- Call: SQL Query
- Avg. Time per Call (ms): the average time per call in milliseconds
- Number of Calls: the number of calls executed during the time range
- Max Time (ms): the maximum execution time in milliseconds
- View snapshots: a link to view existing transaction snapshots
App agents aggregate and report call data to the Controller every 15 minutes. Max Time determines which calls are displayed in the Slowest Database Calls list. For example for JDBC calls, Max Time must exceed 10 ms before AppDynamics tracks the call as a potential candidate for this list.
AppDynamics defines the slowest database calls list as:
- Max Time greater than 10 ms
- Top ten slowest
- Reported every 15 minutes
To access the list of slowest database calls
- Click Troubleshoot > Slow Response Times > Slowest DB & Remote Service Calls.
- If transaction snapshots are available for a slow call, you can click the View Snapshots link in the Snapshots column to select a snapshot and drill down to the root cause of the slowness.
AppDynamics displays NoSQL databases as Remote Services. See Monitor Remote Services.