Download PDF
Download page Java Backend Detection.
Java Backend Detection
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:
- Use the property as is.
- Use segments of the property.
- Run a regular expression on the property. See Using Regular Expressions.
- Execute methods on the property. See Using Getter Chains.
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 |
Endpoint | Yes |
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 Name | Yes |
Keyspace | No |
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 Properties | Default Automatic Couchbase Backend Discovery/Naming |
---|---|
Server Pool | Yes |
Vendor | Yes |
Bucket Name | Yes |
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.
Class | Method |
---|---|
oracle.jdbc.driver.PhysicalConnection |
|
oracle.jdbc.driver.OracleStatement |
|
oracle.jdbc.driver.OracleDataSource |
|
oracle.jdbc.driver.OraclePreparedStatement |
|
oracle.jdbc.driver.OraclePreparedStatementWrapper |
|
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 |
Service | Yes |
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 |
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.