Measuring Remote Service Performance
Calls from an instrumented node to a remote service, such as a message queue or web service, are recognized as traffic related to specific business transactions. AppDynamics monitors the performance of calls to remote services in two ways:
- Overall performance of calls to individual remote services
- Call performance for specific business transactions
A remote service provides a service to a distributed application. It resides outside of the application server. Examples are a Java Message Server or a Web Service. The remote services servers are not instrumented directly, but you can monitor calls to them from instrumented app servers. By default AppDynamics app agents automatically detect many common remote services. See the Supported Environments and Versions for lists of auto-detected services per platform.
To monitor call performance to a service, first make sure it shows up in the Remote Service List and has its own Remote Services Dashboard. If a service is not appearing, check the configuration. See Configure Backend Detection.
Remote Service Visibility on Flow Maps and Dashboards
AppDynamics shows remote services on dashboard flow maps and lists.
Metrics about the remote service calls and response times are collected at three levels:
- Business transaction metrics - the metrics for a specific business transaction for a specific service are visible on the Transaction Flow Map.
- Tier metrics - the metrics for all calls from a tier to the specified service are visible on the Tier Flow Map.
- Remote service metrics - the overall remote service metrics across the application (all business transactions) are visible on the Application Flow Map and the Remote Services Dashboard.
For a discussion of the KPI graphs on the flow maps, see KPI Graphs.
Remote Services on Application Flow Maps
Remote services detected during the specified time window appear on the Application Dashboard flow map. You can view the detected services 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 remote services. These metrics include all calls made from a specific tier to a service across all business transactions. The tier and node flow maps display the same metric in their respective contexts.
Remote Services List
You can view a list of the detected remote services that displays key performance indicators, such as response time, total calls, calls per minute, errors, and errors per minute. The Remote Services list shows all services that have been detected. Services that are not active are removed after a configurable time period. See Remove Stale Backends.
Remote Services Dashboard
From the list, you can select a remote service and click View Dashboard to see the Remote Service Dashboard. The dashboard displays a flow map, properties, and graphs of the key performance indicators (KPIs). The remote service properties are its identity and control what shows up in the display map and how the metrics are aggregated.
From the Remote Service Dashboard you can select the Slowest Remote Service Calls tab to view specific details and find related business transaction snapshots to troubleshoot issues and find the root cause of database bottlenecks.
Remote Services on Tier Flow Maps
The detected remote services show up on the Tier Dashboard flow map. You can view the detected services in the context of the traffic on this specific tier.
Remote Services on Business Transaction Flow Maps
For business transactions involving calls to remote services, the services appear on the Business Transactions Dashboard flow map. You can view the detected services in the context of the traffic for this specific business transaction. The transaction flow map shows the average time spent in remote service calls for the business transaction.
Troubleshoot Remote Service Problems
Slow Remote Service Calls
AppDynamics displays a list of the slowest remote service calls with call details. Click Troubleshoot -> Slow Response Times -> Slowest DB & Remote Service Calls tab to view specific call details and related business transaction snapshots that can help you to troubleshoot.
The Slowest DB & Remote Service Calls tab lists up to ten calls to a remote service with the longest execution time over the selected time frame, by tier and for all tiers. Each call shows the following information:
- Call: call to the remote service
- 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
Max Time determines which calls are displayed in the Slowest DB & Remote Service Calls list. Max Time must exceed 50 ms before AppDynamics tracks the call as a potential candidate for this list. App agents aggregate and report call data to the Controller every 15 minutes.
To summarize, AppDynamics defines the slowest remote services calls list as:
- Max Time greater than 50 milliseconds (ms)
- Top ten worst
- Reported every 15 minutes
Configure Remote Service Detection
You can customize the discovery and naming rules and configure the detection of additional remote services. See Configure Backend Detection.