Overview
Motadata APM supports Java trace ingestion using OTEL and its custom agent. Java applications must run on supported versions (i.e., Java v8 and above) of the JDK, and trace ingestion is agent-based with runtime instrumentation.
Navigation
Go to Menu > Settings > APM > Application Registration. Clicking the Application Registration button, you can register a new application. From the application registration screen, select the instrumentation type Host/VM or Docker.
- Host/VM
- Docker

Java Trace Configuration
| Field | Description |
|---|---|
| Select Agent | Select the Host/VM where this application is running. You can configure Java application service for both Windows and Linux type agent. |
| Language | Select Java from the language icons. |
| Service Name | Provide a unique and meaningful name (e.g., ERP). |
| Application Path | Specify the full path to the executable JAR file used to start the application. Ensure the path ends with .jar. (e.g home/motadata/app.jar) |
| Service Attributes(Tags) | Add key–value tags to your application for better filtering and organizing data in Explorer. Attribute keys must be in lowercase (for example, apm.env = prod). To add multiple Key-Value pairs you can click the add icon. |
| Add Custom Parameters | Allows you to define custom sampling or tagging parameters for advanced use cases. These optional parameters are passed to the agent (for example, version=4). |
Clicking the Apply Configuration button, you need to run the displayed Setup Command to instrument your Java application. Add the displayed argument to your java -jar command and restart the service to collect Traces.
You can configure Trace ingestion according to the framework used to build the application. The below mentioned are the supported frameworks.
Supported Frameworks
The following frameworks are supported for instrumentation and monitoring. Ensure your application version aligns with the minimum supported version listed below.
| Framework | Supported Version(s) |
|---|---|
| ActiveJ | 6.0+ |
| Akka Actors | 2.3+ |
| Akka HTTP | 10.0+ |
| Apache Axis2 | 1.6+ |
| Apache Camel | 2.20+ (excluding 3.0+ for now) |
| Apache CXF JAX-RS | 3.2+ (excluding 4.0+ for now) |
| Apache CXF JAX-WS | 3.0+ (excluding 4.0+ for now) |
| Apache Dubbo | 2.7+ |
| Apache ShenYu | 2.4+ |
| Apache MyFaces | 1.2+ (excluding 4.0+ for now) |
| Apache Pekko Actors | 1.0+ |
| Apache Pekko HTTP | 1.0+ |
| Apache Struts | 2.3+ |
| Apache Tapestry | 5.4+ |
| Apache Wicket | 8.0+ |
| Armeria | 1.3+ |
| Armeria gRPC | 1.14+ |
| Avaje Jex | 3.0+ |
| AWS Lambda | 1.0+ |
| Dropwizard Views | 0.7+ |
| Eclipse Grizzly | 2.3+ |
| Eclipse Jersey | 2.0+ |
| Eclipse Metro | 2.2+ |
| Eclipse Mojarra | 1.2+ (excluding 4.0+ for now) |
| Finagle | 23.11+ |
| Finatra | 2.9+ |
| Grails | 3.0+ |
| GraphQL Java | 12.0+ |
| gRPC | 1.6+ |
| GWT | 2.0+ |
| Java HTTP Server | Java 8+ |
| Javalin | 5.0+ |
| JAX-RS | 0.5+ |
| JAX-WS | 2.0+ (excluding 3.0+ for now) |
| JSP | 2.3.x only |
| Ktor | 1.0+ |
| Play MVC | 2.4+ |
| PowerJob | 4.0.0+ |
| Quarkus Resteasy Reactive | 2.16.7+ |
| Ratpack | 1.4+ |
| RESTEasy | 3.0+ (excluding 6.0+ for now) |
| Restlet | 1.0+ |
| RMI | Java 8+ |
| Servlet | 2.2+ |
| Spark Web Framework | 2.3+ |
| Spring Batch | 3.0+ (excluding 5.0+ for now) |
| Spring Boot | All supported production versions |
| Spring Cloud AWS | 3.0+ |
| Spring Cloud Gateway | 2.0+ |
| Spring Core | 2.0+ |
| Spring Integration | 4.1+ (excluding 6.0+ for now) |
| Spring RMI | 4.0+ |
| Spring Scheduling | 3.1+ |
| Spring Web MVC | 3.1+ |
| Spring Web Services | 2.0+ (excluding 4.0+ for now) |
| Spring WebFlux | 5.3+ |
| Undertow | 1.4+ |
| Vaadin | 14.2+ |
| Vert.x Web | 3.0+ |
| XXL-JOB | 1.9.2+ |
| ZIO | 2.0+ |
Supported Database
| Database | Version(s) |
|---|---|
| Alibaba Druid | 1.0+ |
| Apache DBCP | 2.0+ |
| Cassandra Driver | 3.0+ |
| Clickhouse Client | 0.5+ |
| Couchbase Client | 2.0 - 2.7.x |
| Couchbase Client | 3.1+ |
| c3p0 | 0.9.2+ |
| Elasticsearch API Client | 7.16 - 7.17.19, 8.0 - 8.9.+ |
| Elasticsearch REST Client | 5.0+ |
| Elasticsearch Transport Client | 5.0+ |
| Geode Client | 1.4+ |
| Hibernate | 3.3+ |
| Hibernate Reactive | 1.0+ |
| HikariCP | 3.0+ |
| InfluxDB Client | 2.4+ |
| JDBC | Java 8+ |
| Jedis | 1.4+ |
| Lettuce | 4.0+ |
| MongoDB Driver | 3.1+ |
| MyBatis | 3.2+ |
| OpenSearch Rest Client | 1.0+ |
| Oracle UCP | 11.2+ |
| R2DBC | 1.0+ |
| Rediscala | 1.8+ |
| Redisson | 3.0+ |
| Spymemcached | 2.12+ |
| Spring Data | 1.8+ |
| Tomcat JDBC Pool | 8.5+ |
| Vert.x Redis Client | 4.0+ |
| Vert.x SQL Client | 4.0+ |
| Vibur DBCP | 11.0+ |
Supported Queue
| Queue | Version(s) |
|---|---|
| Apache Kafka Producer/Consumer API | 0.11+ |
| Apache Kafka Streams API | 0.11+ |
| Apache Pulsar | 2.8+ |
| Apache RocketMQ gRPC/Protobuf-based Client | 5.0+ |
| Apache RocketMQ Remoting-based Client | 4.8+ |
| JMS | 1.1+ |
| RabbitMQ Client | 2.7+ |
| Spring JMS | 2.0+ |
| Spring Kafka | 2.7+ |
| Spring Pulsar | 1.0+ |
| Spring RabbitMQ | 1.0+ |
| Vert.x Kafka Client | 3.6+ |
Supported Others
| Library | Version(s) |
|---|---|
| Apache HttpAsyncClient | 4.1+ |
| Apache HttpClient | 2.0+ |
| AsyncHttpClient | 1.9+ |
| AWS SDK | 1.11 - 1.12.583, 2.2+ |
| Azure Core | 1.14+ |
| Dropwizard Metrics | 4.0+ (disabled by default) |
| Eclipse Jetty HTTP Client | 9.2 - 9.4.x, 12.0+ |
| Google HTTP Client | 1.19+ |
| Guava ListenableFuture | 10.0+ |
| HttpURLConnection | Java 8+ |
| Hystrix | 1.4+ |
| Java Executors | Java 8+ |
| Java Http Client | Java 11+ |
| java.util.logging | Java 8+ |
| Java Platform | Java 8+ |
| JAX-RS Client | 1.1+ |
| JBoss Log Manager | 1.1+ |
| Jodd Http | 4.2+ |
| Kotlin Coroutines | 1.0+ |
| Kubernetes Client | 7.0+ |
| Log4j 1 | 1.2+ |
| Log4j 2 | 2.11+ |
| Logback | 1.0+ |
| Micrometer | 1.5+ (disabled by default) |
| Netty HTTP codec | 3.8+ |
| OpenAI Java SDK | 1.1+ |
| OkHttp | 2.2+ |
| OSHI | 5.3.1+ |
| Play WS | 1.0+ |
| Quartz | 2.0+ |
| Reactor | 3.1+ |
| Reactor Netty | 0.9+ |
| RxJava | 1.0+ |
| Scala ForkJoinPool | 2.8+ |
| Spring RestTemplate | 3.1+ |
| Twilio | 6.6+ (not including 8.0+ yet) |
| Vert.x HttpClient | 3.0+ |
| Vert.x RxJava2 | 3.5+ |
Once the Application is Running, you need to verify the below points:
- Confirm that the service has been registered successfully.
- On the service registration screen, the Service Trace Collection Status should display "Running."
- The traces will start appearing in the APM Explorer screen.
Java Trace Configuration
| Field | Description |
|---|---|
| Select Agent | Select the Docker where this application is running. You can configure Java application service for Linux type agent. |
| Language | Select Java from the language icons. |
| Service Name | Provide a unique and meaningful name (e.g., ERP). |
| Application Path | Specify the full path to the executable JAR file used to start the application. Ensure the path ends with .jar. (e.g home/motadata/app.jar) |
| Service Attributes(Tags) | Add key–value tags to your application for better filtering and organizing data in Explorer. Attribute keys must be in lowercase (for example, apm.env = prod). To add multiple Key-Value pairs you can click the add icon. |
| Add Custom Parameters | Allows you to define custom sampling or tagging parameters for advanced use cases. These optional parameters are passed to the agent (for example, version=4). |
Clicking the Apply Configuration button, you need to run the displayed Setup Command to instrument your Java application. Add the displayed argument to your java -jar command and restart the service to collect Traces.

You can configure Trace ingestion according to the framework used to build the application. The below mentioned are the supported frameworks.
Supported Frameworks
The following frameworks are supported for instrumentation and monitoring. Ensure your application version aligns with the minimum supported version listed below.
| Framework | Supported Version(s) |
|---|---|
| ActiveJ | 6.0+ |
| Akka Actors | 2.3+ |
| Akka HTTP | 10.0+ |
| Apache Axis2 | 1.6+ |
| Apache Camel | 2.20+ (excluding 3.0+ for now) |
| Apache CXF JAX-RS | 3.2+ (excluding 4.0+ for now) |
| Apache CXF JAX-WS | 3.0+ (excluding 4.0+ for now) |
| Apache Dubbo | 2.7+ |
| Apache ShenYu | 2.4+ |
| Apache MyFaces | 1.2+ (excluding 4.0+ for now) |
| Apache Pekko Actors | 1.0+ |
| Apache Pekko HTTP | 1.0+ |
| Apache Struts | 2.3+ |
| Apache Tapestry | 5.4+ |
| Apache Wicket | 8.0+ |
| Armeria | 1.3+ |
| Armeria gRPC | 1.14+ |
| Avaje Jex | 3.0+ |
| AWS Lambda | 1.0+ |
| Dropwizard Views | 0.7+ |
| Eclipse Grizzly | 2.3+ |
| Eclipse Jersey | 2.0+ |
| Eclipse Metro | 2.2+ |
| Eclipse Mojarra | 1.2+ (excluding 4.0+ for now) |
| Finagle | 23.11+ |
| Finatra | 2.9+ |
| Grails | 3.0+ |
| GraphQL Java | 12.0+ |
| gRPC | 1.6+ |
| GWT | 2.0+ |
| Java HTTP Server | Java 8+ |
| Javalin | 5.0+ |
| JAX-RS | 0.5+ |
| JAX-WS | 2.0+ (excluding 3.0+ for now) |
| JSP | 2.3.x only |
| Ktor | 1.0+ |
| Play MVC | 2.4+ |
| PowerJob | 4.0.0+ |
| Quarkus Resteasy Reactive | 2.16.7+ |
| Ratpack | 1.4+ |
| RESTEasy | 3.0+ (excluding 6.0+ for now) |
| Restlet | 1.0+ |
| RMI | Java 8+ |
| Servlet | 2.2+ |
| Spark Web Framework | 2.3+ |
| Spring Batch | 3.0+ (excluding 5.0+ for now) |
| Spring Boot | All supported production versions |
| Spring Cloud AWS | 3.0+ |
| Spring Cloud Gateway | 2.0+ |
| Spring Core | 2.0+ |
| Spring Integration | 4.1+ (excluding 6.0+ for now) |
| Spring RMI | 4.0+ |
| Spring Scheduling | 3.1+ |
| Spring Web MVC | 3.1+ |
| Spring Web Services | 2.0+ (excluding 4.0+ for now) |
| Spring WebFlux | 5.3+ |
| Undertow | 1.4+ |
| Vaadin | 14.2+ |
| Vert.x Web | 3.0+ |
| XXL-JOB | 1.9.2+ |
| ZIO | 2.0+ |
Supported Database
| Database | Version(s) |
|---|---|
| Alibaba Druid | 1.0+ |
| Apache DBCP | 2.0+ |
| Cassandra Driver | 3.0+ |
| Clickhouse Client | 0.5+ |
| Couchbase Client | 2.0 - 2.7.x |
| Couchbase Client | 3.1+ |
| c3p0 | 0.9.2+ |
| Elasticsearch API Client | 7.16 - 7.17.19, 8.0 - 8.9.+ |
| Elasticsearch REST Client | 5.0+ |
| Elasticsearch Transport Client | 5.0+ |
| Geode Client | 1.4+ |
| Hibernate | 3.3+ |
| Hibernate Reactive | 1.0+ |
| HikariCP | 3.0+ |
| InfluxDB Client | 2.4+ |
| JDBC | Java 8+ |
| Jedis | 1.4+ |
| Lettuce | 4.0+ |
| MongoDB Driver | 3.1+ |
| MyBatis | 3.2+ |
| OpenSearch Rest Client | 1.0+ |
| Oracle UCP | 11.2+ |
| R2DBC | 1.0+ |
| Rediscala | 1.8+ |
| Redisson | 3.0+ |
| Spymemcached | 2.12+ |
| Spring Data | 1.8+ |
| Tomcat JDBC Pool | 8.5+ |
| Vert.x Redis Client | 4.0+ |
| Vert.x SQL Client | 4.0+ |
| Vibur DBCP | 11.0+ |
Supported Queue
| Queue | Version(s) |
|---|---|
| Apache Kafka Producer/Consumer API | 0.11+ |
| Apache Kafka Streams API | 0.11+ |
| Apache Pulsar | 2.8+ |
| Apache RocketMQ gRPC/Protobuf-based Client | 5.0+ |
| Apache RocketMQ Remoting-based Client | 4.8+ |
| JMS | 1.1+ |
| RabbitMQ Client | 2.7+ |
| Spring JMS | 2.0+ |
| Spring Kafka | 2.7+ |
| Spring Pulsar | 1.0+ |
| Spring RabbitMQ | 1.0+ |
| Vert.x Kafka Client | 3.6+ |
Supported Others
| Library | Version(s) |
|---|---|
| Apache HttpAsyncClient | 4.1+ |
| Apache HttpClient | 2.0+ |
| AsyncHttpClient | 1.9+ |
| AWS SDK | 1.11 - 1.12.583, 2.2+ |
| Azure Core | 1.14+ |
| Dropwizard Metrics | 4.0+ (disabled by default) |
| Eclipse Jetty HTTP Client | 9.2 - 9.4.x, 12.0+ |
| Google HTTP Client | 1.19+ |
| Guava ListenableFuture | 10.0+ |
| HttpURLConnection | Java 8+ |
| Hystrix | 1.4+ |
| Java Executors | Java 8+ |
| Java Http Client | Java 11+ |
| java.util.logging | Java 8+ |
| Java Platform | Java 8+ |
| JAX-RS Client | 1.1+ |
| JBoss Log Manager | 1.1+ |
| Jodd Http | 4.2+ |
| Kotlin Coroutines | 1.0+ |
| Kubernetes Client | 7.0+ |
| Log4j 1 | 1.2+ |
| Log4j 2 | 2.11+ |
| Logback | 1.0+ |
| Micrometer | 1.5+ (disabled by default) |
| Netty HTTP codec | 3.8+ |
| OpenAI Java SDK | 1.1+ |
| OkHttp | 2.2+ |
| OSHI | 5.3.1+ |
| Play WS | 1.0+ |
| Quartz | 2.0+ |
| Reactor | 3.1+ |
| Reactor Netty | 0.9+ |
| RxJava | 1.0+ |
| Scala ForkJoinPool | 2.8+ |
| Spring RestTemplate | 3.1+ |
| Twilio | 6.6+ (not including 8.0+ yet) |
| Vert.x HttpClient | 3.0+ |
| Vert.x RxJava2 | 3.5+ |
Once the Application is Running, you need to verify the below points:
- Confirm that the service has been registered successfully.
- On the service registration screen, the Service Trace Collection Status should display "Running."
- The traces will start appearing in the APM Explorer screen.