Remote Service Monitoring

AppDynamics can identify, monitor and measure traffic flowing to components in your application environment even when they are not instrumented by an AppDynamics agent. Such components—called remote services in AppDynamics—may be a database, web service, message queue, cache server, or any other type of uninstrumented component upon which your application relies. 

Overview

Applications are increasingly distributed, with the services composing an application residing on different machines, different data centers, and even across organizational boundaries. When monitoring performance in this environment, how do you know if it's your code or partner code that's a source of a performance problem?

With AppDynamics, you can monitor the performance not just of the applications you have instrumented with AppDynamics, but also the performance of external services upon which your application relies.

AppDynamics automatically detects and identifies remote services called by your application. It gives you performance information for the remote service over time—how often the service is called, its average response time and error rate.

With remote service monitoring, AppDynamics ensures that performance visibility isn't limited to traditional application boundaries.

A remote service is a process that resides outside of the application server that provides a service to the application. An example of remote service is a web service, message queue, or caching server. Many types of remote services are automatically detected when calls are made from instrumented nodes.

In AppDynamics, uninstrumented databases and remote services are collectively known as backends. AppDynamics discovers backends from exit point calls in the application code. An exit point is a call from an instrumented node to another node or to a backend. When the destination of an exit point call is not instrumented, the exit call results in a backend discovery event. AppDynamics automatically discovers a wide range of backends.

A discoverable backend is identified by its type and related properties. The set of preconfigured properties are referred to as backend automatic discovery rules. AppDynamics uses these rules to identify and name the databases and remote services.

The automatic discovery rules vary according to the type of backend being identified, but generally include settings for enabling automatic discovery of the backend type, enabling correlation, and properties used to identify and name the backend. AppDynamics uses transaction correlation to track request processing across distributed tiers.

Remote services that are detected out of the box include:

  • Amazon Web Services

  • IBM MQ

  • MongoDB

  • WebSocket

  • Oracle Coherence

You can find more information in the Support Environments documentation for your agent.

If a service you expect to see listed does not appear in the Remote Services link on the Applications menu you can configure and customize backend detection rules to detect that service.

AppDynamics detects the remote services and visualizes them in flow maps, presenting  a dynamic, visual representation of the components and activities of your monitored application environment, such as the tiers, nodes, message queues, and databases in the environment, and the business transactions that flow through them.

Metrics for remote services are presented in the Controller UI in the following locations:

  • Business transaction metrics: The Transaction flow map shows the metrics for a specific business transaction for a specific service

  • Tier metrics: The Tier flow map shows the metrics for all calls from a tier to the specified service

  • Remote service metrics: The Application flow map and the Remote Services Dashboard show the overall remote service metrics across the application (all business transactions)

  • Metric Browser: Both named and discovered backend call metrics are available in the Backends section of the Metric Browser’s left navigation bar.

You can set up Databases and Remote Services health rules to alert you when the Average Response Time, Calls per Minute or Errors per minute have exceeded an unacceptable range. If you have an alert set up, an Email or SMS message will be sent to you or your Ops team so you can start troubleshooting the problem before the business impact escalates.

If you know that the application flow map should be showing a specific backend and you are not seeing it, you can modify the configuration to detect backends. You can:

  • Edit the default backend discovery rules.

  • Create new custom backend discovery rules.

  • Create new custom exit points to provide visibility for backend types that are not automatically discovered.

  • Disable automatic discovery of backends that are not of interest.

  • Disable correlation for the backend.

The Automatic Backend Discovery list in the Configuration > Instrumentation > Backend Detection tab shows the configurable backend discovery rules.

AppDynamics monitors the overall performance of calls to a remote service, as well as the performance of those calls from within specific business transactions.

The following metrics are captured for all remote service communication:

  • Average Response Time (ms): Time taken while communicating with a remote service

  • Calls per Minute: Call rate of all calls made to a remote service

  • Errors per Minute: Error rate of all calls which resulted in errors made to a remote service

  • Custom Metrics: Any custom metrics you defined

Try AppDynamics Now!

Introduction

Applications are increasingly distributed, with the services composing an application residing on different machines, different data centers, and even across organizational boundaries. When monitoring performance in this environment, how do you know if it's your code or partner code that's a source of a performance problem?

With AppDynamics, you can monitor the performance not just of the applications you have instrumented with AppDynamics, but also the performance of external services upon which your application relies.

AppDynamics automatically detects and identifies remote services called by your application. It gives you performance information for the remote service over time—how often the service is called, its average response time and error rate.

With remote service monitoring, AppDynamics ensures that performance visibility isn't limited to traditional application boundaries.

What is a remote service

A remote service is a process that resides outside of the application server that provides a service to the application. An example of remote service is a web service, message queue, or caching server. Many types of remote services are automatically detected when calls are made from instrumented nodes.

How do we monitor remote services

In AppDynamics, uninstrumented databases and remote services are collectively known as backends. AppDynamics discovers backends from exit point calls in the application code. An exit point is a call from an instrumented node to another node or to a backend. When the destination of an exit point call is not instrumented, the exit call results in a backend discovery event. AppDynamics automatically discovers a wide range of backends.

A discoverable backend is identified by its type and related properties. The set of preconfigured properties are referred to as backend automatic discovery rules. AppDynamics uses these rules to identify and name the databases and remote services.

Supported remote services

The automatic discovery rules vary according to the type of backend being identified, but generally include settings for enabling automatic discovery of the backend type, enabling correlation, and properties used to identify and name the backend. AppDynamics uses transaction correlation to track request processing across distributed tiers.

Remote services that are detected out of the box include:

  • Amazon Web Services

  • IBM MQ

  • MongoDB

  • WebSocket

  • Oracle Coherence

You can find more information in the Support Environments documentation for your agent.

If a service you expect to see listed does not appear in the Remote Services link on the Applications menu you can configure and customize backend detection rules to detect that service.

Viewing remote service calls

AppDynamics detects the remote services and visualizes them in flow maps, presenting  a dynamic, visual representation of the components and activities of your monitored application environment, such as the tiers, nodes, message queues, and databases in the environment, and the business transactions that flow through them.

Metrics for remote services are presented in the Controller UI in the following locations:

  • Business transaction metrics: The Transaction flow map shows the metrics for a specific business transaction for a specific service

  • Tier metrics: The Tier flow map shows the metrics for all calls from a tier to the specified service

  • Remote service metrics: The Application flow map and the Remote Services Dashboard show the overall remote service metrics across the application (all business transactions)

  • Metric Browser: Both named and discovered backend call metrics are available in the Backends section of the Metric Browser’s left navigation bar.

Troubleshooting remote service problems

You can set up Databases and Remote Services health rules to alert you when the Average Response Time, Calls per Minute or Errors per minute have exceeded an unacceptable range. If you have an alert set up, an Email or SMS message will be sent to you or your Ops team so you can start troubleshooting the problem before the business impact escalates.

Where to configure remote service monitoring

If you know that the application flow map should be showing a specific backend and you are not seeing it, you can modify the configuration to detect backends. You can:

  • Edit the default backend discovery rules.

  • Create new custom backend discovery rules.

  • Create new custom exit points to provide visibility for backend types that are not automatically discovered.

  • Disable automatic discovery of backends that are not of interest.

  • Disable correlation for the backend.

The Automatic Backend Discovery list in the Configuration > Instrumentation > Backend Detection tab shows the configurable backend discovery rules.

Understanding remote service metrics

AppDynamics monitors the overall performance of calls to a remote service, as well as the performance of those calls from within specific business transactions.

The following metrics are captured for all remote service communication:

  • Average Response Time (ms): Time taken while communicating with a remote service

  • Calls per Minute: Call rate of all calls made to a remote service

  • Errors per Minute: Error rate of all calls which resulted in errors made to a remote service

  • Custom Metrics: Any custom metrics you defined

What's next

Try AppDynamics Now!
Getting Started
  1. Install AppDynamics app agents on your system to instrument your code and discover remote service calls in your applications.

  2. View remote service dependencies in flow maps.

  3. Monitor remote services performance. The Remote Services page shows you an aggregated view of remote service performance. 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 with troubleshooting.

  4. Fine-tune backend service discover and identification.