The AppDynamics Java Agent automatically discovers common types of remote services as backend systems based on the exit point associated with the backend. If AppDynamics does not automatically discover a backend system used in your environment, check whether it's an automatically discovered type (based on the list below) and compare the default exit points for the type to that used in your application environment.

Each automatically discovered backend type has a default discovery rule. Many backend types have a set of backend naming properties. Where individual properties are configurable, you can configure the property as follows:

For instructions to revise backend discovery rules, see Backend Detection Rules.

Amazon Simple Notification Service Backends

AppDynamics detects exit calls to the Amazon SNS messaging service using the Amazon SNS Client: AmazonSNSClient.publish.

Amazon SNS Naming Properties

You can enable or disable the use of the following properties for Amazon S3 backend identification: 

Configurable Properties

Default Automatic Amazon SNS Backend Discovery/Naming

Vendor

Yes

Topic ARN

Yes

Amazon Simple Queue Service Backends

AppDynamics can detect the following types of Amazon Web Services SQS message queue actions:

  • Basic send/receive
  • Batched send/receive
  • Asynchronous send/receive

Correlating SQS traffic requires you to configure the continuation entry point for the SQS message.

Amazon Simple Storage Service Backends

AppDynamics automatically detects the following exit points for Amazon Web Services S3 backends:

  • AmazonS3Client.deleteObject
  • AmazonS3Client.getObject
  • AmazonS3Client.getObjectMetadata
  • AmazonS3Client.listObjects
  • AmazonS3Client.putObject

Amazon S3 Naming Properties

You can enable or disable the use of the following properties for Amazon S3 backend identification:

Configurable Properties

Default Automatic Amazon S3 Discovery/Naming

Bucket Name

Yes

Vendor

Yes

Object Key

No

Amazon Web Services Backends

AppDynamics detects the following exit calls to the following Amazon Web Services:

  • DynamoDB requests using the AmazonDynamoDBClient create, read, update, and delete (CRUD) methods using the Amazon low-level DynamoDB API. The agent discovers the Document API calls as the underlying low-level API call.

Amazon Web Service Naming Properties

For Amazon Web Services, you can enable or disable the use of the following naming properties for backend identification:

Configurable Properties

Default Automatic Amazon Web Service Backend Discovery/Naming

Vendor

Yes

Service

Yes

EndpointYes

Apache Cassandra CQL Backends

By default, AppDynamics automatically detects and identifies exit calls to Apache Cassandra using Thrift and DataStax drivers.

Exceptions returned from Cassandra backends show up as separate exit calls. For the DataStax 1.0 driver, the Java Agent detects an "unknown" Cassandra backend in order to capture the error details.

Cassandra Backend Naming Properties

You can enable or disable the use of the properties below for Cassandra backend identification:

When you configure Cassandra backend naming, consider the following:

  • For DataStax clients, AppDynamics does not recommend using the keyspace property. Due to driver limitations, the keyspace property is only available when Statement.setKeyspace is called explicitly in Cassandra. This can lead to the discovery of multiple backends.
  • Thrift clients don't support Cluster Name, Rack or Data Center properties, so those properties return null for Thrift.

Configurable Properties

Default Automatic Cassandra CQL Backend Discovery/Naming

Cluster NameYes
KeyspaceNo

Host

Yes

Port

Yes

Data Center

No

Rack

No

Apache Kafka Backends

By default, the Java Agent detects publish activity to Apache Kafka as an exit point from a Java node. You can configure the Java Agent to detect Kafka consumer activity as an entry point, see Apache Kafka Consumer Backends.

Kafka Backend Naming Properties

You can enable or disable the use of the following properties for Kafka backend identification:

Configurable Properties

Default Automatic IBM MQ Backend Discovery/Naming

Vendor

Yes

Topic Name

Yes

Broker URL

No

Default Kafka JMX Metrics

Kafka Producer and Consumer expose many JMX metrics. By default, we provide rules for some of these metrics. See Default JMX Metrics for Apache Kafka Backends. If you need to create a new rule, see Configure JMX Metrics from MBeans.

Couchbase Backends

By default, AppDynamics automatically detects and identifies exit calls made to the Couchbase cluster node.

Couchbase Backend Naming Properties

You can enable or disable the use of the following properties for Couchbase exit backend identification:

Configurable PropertiesDefault Automatic Couchbase Backend Discovery/Naming
Server PoolYes
VendorYes
Bucket NameYes

HTTP Backends

HTTP exit point activity includes all HTTP calls done outside of a web service call. Web service calls are not considered an HTTP exit point. By default, the Java Agent names the HTTP backend for the Host and Port properties.  For instance, "myHTTPHost:5000".  

HTTP Backend Naming Properties

You can enable or disable the use of the following properties for HTTP backend identification:

Configurable Properties

Default Automatic HTTP Backend Discovery/Naming

Host

Yes

Port

Yes

URL

No

Query String

No

For examples of common HTTP backend configurations, see HTTP Backend Detection.

For sample JDBC backend configurations, see Example JDBC Backend Configuration.

IBM Websphere Message Queue Backends

IBM MQ, also known as IBM WebSphere MQ and IBM MQSeries, is IBM's message-oriented middleware similar to JMS. Several additional properties are configurable, such as host and port. This is useful where you have lots of queues and you want to monitor them based on a subset of the properties.

IBM MQ Backend Naming Properties

You can enable or disable the use of the following properties for IBM MQ backend identification:

Configurable Properties

Default Automatic IBM MQ Backend Discovery/Naming

Destination

Yes

Destination Type

Yes

Host

Yes

Port

Yes

Major Version

Yes

Vendor

Yes

For examples of common message queue configuration scenarios, see Example Message Queue Backend Configuration.

Java Message Service Backends

JMS backend activity includes all JMS message send and publish activity. By default, AppDynamics identifies JMS back ends using the properties of the JMS server such as: vendor, destination name, and destination type. The default configuration uses all three properties of the JMS queue.

JMS Backend Naming Properties

You can enable or disable the use of the following properties for JMS backend identification:

Configurable Properties

Default Automatic JMS Backend Discovery/Naming

Destination

Yes

Destination Type

Yes

Vendor

Yes

Transaction names are derived from the enabled properties, for example, "ActiveMQ-OrderQueue".

For examples of common message queue configuration scenarios, see Example Message Queue Backend Configuration.


JDBC Backends

JDBC backend activity consists of all JDBC calls including inserts, queries, updates, getting connections from connection pools, and so on. 

ClassMethod
oracle.jdbc.driver.PhysicalConnection
  • prepareStatement
  • prepareCall
  • commit
  • rollback
oracle.jdbc.driver.OracleStatement
  • executeQuery
  • executeUpdate
  • execute
oracle.jdbc.driver.OracleDataSource
  • getConnection
oracle.jdbc.driver.OraclePreparedStatement
  • executeQuery
  • addBatch
  • execute
  • executeUpdate
oracle.jdbc.driver.OraclePreparedStatementWrapper
  • execute
  • executeQuery
  • executeUpdate

The Java Agent measures the response time for a database call as the round trip time it takes for a JDBC call to return. The response time for a database call includes network round trip time + database connection time + SQL query time or any other time spent in the database.

By default, the agent identifies JDBC backends using the following logical properties of the database:

  • URL
  • Host name
  • Port number
  • Database schema
  • Version
  • Vendor

If a database backend has the same hostname, port number, and database type as a database server already configured in a database Collector, the database backend is automatically matched with the Collector, and drill-downs from the Application Flow Map, Tier Flow Map or Node Flow Map to Database Monitoring are enabled.

JDBC Backend Naming Properties

You can enable or disable the use of the following properties for JDBC backend identification:

Configurable Properties

Default Automatic JDBC Backend Discovery/Naming

Description

URL

Yes

JDBC URL provided to the driver

Host

Yes

Database host

Port

Yes

Database port

Database

Yes

Database schema

Version

Yes

Database version as reported by JDBC driver

Vendor

Yes

Database vendor as reported by JDBC driver

Jolt Backends

AppDynamics detects exit calls to Tuxedo services from the JoltRemoteService class in the Jolt Class Library.

Jolt Naming Properties

You can enable or disable the use of the following naming properties for Jolt backend identification.

Configurable Properties

Default Automatic Jolt Backend Discovery/Naming

Host

Yes

Port

Yes

ServiceYes

MongoDB Backends

By default, the Java Agent detects exit calls to MongoDB using the Mongo Java Driver over the MongoDB Wire Protocol. The agent detects the exit point on the Wire Protocol methods and excludes the methods between the external API and the Wire Protocol.

MongoDB Backend Naming Properties

Configurable Properties

Default Automatic MongoDB Backend Discovery/Naming

Host

Yes

Port

Yes

Database

Yes

RabbitMQ Backends

RabbitMQ is open source, commercially supported, messaging middleware that runs on many different operating systems. The Java Agent discovers exit points using the RabbitMQ Java API, amqp-client.jar in most distributions. By default, RabbitMQ backends are identified by Host, Port, Routing Key, and Exchange. For instance: "amqp://guest@127.0.0.1:5672/exchange/task_queue".

RabbitMQ Backend Naming Properties

You can enable or disable the use of the following properties for RabbitMQ backend identification:

Configurable Properties

Default Automatic RabbitMQ Backend Discovery/Naming

Host

Yes

Port

Yes

Routing Key

Yes

Exchange

Yes

For examples of common message queue configuration scenarios, see Example Message Queue Backend Configuration.

RMI Backends

The Java Agent automatically discovers backends called using the standard Java RMI API. For a list of supported RMI frameworks, see 'RPC/Web Services API/HTTP Client Support' on Java Supported Environments.

RMI Backend Naming Property

The JAVA Agent names the RMI backend for the URL. You can configure how the agent uses the URL to name the RMI backend.

Thrift Backends

By default, AppDynamics automatically detects and identifies Apache Thrift exit points (backends).
See Apache Thrift for details.

Thrift Backend Naming Properties

You can enable or disable the use of the following properties for Thrift exit backend identification:

Configurable Properties

Default Automatic Thrift Backend Discovery/Naming

Host

Yes

Port

Yes

transport

Yes

Web Services Backends

Web service backend activity includes all web service invocations. Web service backends are identified using the web service name.

Web Services Backend Naming Properties

Configurable Properties

Default Automatic Web Service Backend Discovery/Naming

Service

Yes

URL

No

Operation

No

Soap Action

No

Vendor

No

By default, the gRPC backend is identified as ServiceName-gRPC. This is also configurable under web services backend.