Skip to main content

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.

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.

Java Trace Configuration

FieldDescription
Select AgentSelect the Host/VM where this application is running. You can configure Java application service for both Windows and Linux type agent.
LanguageSelect Java from the language icons.
Service NameProvide a unique and meaningful name (e.g., ERP).
Application PathSpecify 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 ParametersAllows 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.

FrameworkSupported Version(s)
ActiveJ6.0+
Akka Actors2.3+
Akka HTTP10.0+
Apache Axis21.6+
Apache Camel2.20+ (excluding 3.0+ for now)
Apache CXF JAX-RS3.2+ (excluding 4.0+ for now)
Apache CXF JAX-WS3.0+ (excluding 4.0+ for now)
Apache Dubbo2.7+
Apache ShenYu2.4+
Apache MyFaces1.2+ (excluding 4.0+ for now)
Apache Pekko Actors1.0+
Apache Pekko HTTP1.0+
Apache Struts2.3+
Apache Tapestry5.4+
Apache Wicket8.0+
Armeria1.3+
Armeria gRPC1.14+
Avaje Jex3.0+
AWS Lambda1.0+
Dropwizard Views0.7+
Eclipse Grizzly2.3+
Eclipse Jersey2.0+
Eclipse Metro2.2+
Eclipse Mojarra1.2+ (excluding 4.0+ for now)
Finagle23.11+
Finatra2.9+
Grails3.0+
GraphQL Java12.0+
gRPC1.6+
GWT2.0+
Java HTTP ServerJava 8+
Javalin5.0+
JAX-RS0.5+
JAX-WS2.0+ (excluding 3.0+ for now)
JSP2.3.x only
Ktor1.0+
Play MVC2.4+
PowerJob4.0.0+
Quarkus Resteasy Reactive2.16.7+
Ratpack1.4+
RESTEasy3.0+ (excluding 6.0+ for now)
Restlet1.0+
RMIJava 8+
Servlet2.2+
Spark Web Framework2.3+
Spring Batch3.0+ (excluding 5.0+ for now)
Spring BootAll supported production versions
Spring Cloud AWS3.0+
Spring Cloud Gateway2.0+
Spring Core2.0+
Spring Integration4.1+ (excluding 6.0+ for now)
Spring RMI4.0+
Spring Scheduling3.1+
Spring Web MVC3.1+
Spring Web Services2.0+ (excluding 4.0+ for now)
Spring WebFlux5.3+
Undertow1.4+
Vaadin14.2+
Vert.x Web3.0+
XXL-JOB1.9.2+
ZIO2.0+

Supported Database

DatabaseVersion(s)
Alibaba Druid1.0+
Apache DBCP2.0+
Cassandra Driver3.0+
Clickhouse Client0.5+
Couchbase Client2.0 - 2.7.x
Couchbase Client3.1+
c3p00.9.2+
Elasticsearch API Client7.16 - 7.17.19, 8.0 - 8.9.+
Elasticsearch REST Client5.0+
Elasticsearch Transport Client5.0+
Geode Client1.4+
Hibernate3.3+
Hibernate Reactive1.0+
HikariCP3.0+
InfluxDB Client2.4+
JDBCJava 8+
Jedis1.4+
Lettuce4.0+
MongoDB Driver3.1+
MyBatis3.2+
OpenSearch Rest Client1.0+
Oracle UCP11.2+
R2DBC1.0+
Rediscala1.8+
Redisson3.0+
Spymemcached2.12+
Spring Data1.8+
Tomcat JDBC Pool8.5+
Vert.x Redis Client4.0+
Vert.x SQL Client4.0+
Vibur DBCP11.0+

Supported Queue

QueueVersion(s)
Apache Kafka Producer/Consumer API0.11+
Apache Kafka Streams API0.11+
Apache Pulsar2.8+
Apache RocketMQ gRPC/Protobuf-based Client5.0+
Apache RocketMQ Remoting-based Client4.8+
JMS1.1+
RabbitMQ Client2.7+
Spring JMS2.0+
Spring Kafka2.7+
Spring Pulsar1.0+
Spring RabbitMQ1.0+
Vert.x Kafka Client3.6+

Supported Others

LibraryVersion(s)
Apache HttpAsyncClient4.1+
Apache HttpClient2.0+
AsyncHttpClient1.9+
AWS SDK1.11 - 1.12.583, 2.2+
Azure Core1.14+
Dropwizard Metrics4.0+ (disabled by default)
Eclipse Jetty HTTP Client9.2 - 9.4.x, 12.0+
Google HTTP Client1.19+
Guava ListenableFuture10.0+
HttpURLConnectionJava 8+
Hystrix1.4+
Java ExecutorsJava 8+
Java Http ClientJava 11+
java.util.loggingJava 8+
Java PlatformJava 8+
JAX-RS Client1.1+
JBoss Log Manager1.1+
Jodd Http4.2+
Kotlin Coroutines1.0+
Kubernetes Client7.0+
Log4j 11.2+
Log4j 22.11+
Logback1.0+
Micrometer1.5+ (disabled by default)
Netty HTTP codec3.8+
OpenAI Java SDK1.1+
OkHttp2.2+
OSHI5.3.1+
Play WS1.0+
Quartz2.0+
Reactor3.1+
Reactor Netty0.9+
RxJava1.0+
Scala ForkJoinPool2.8+
Spring RestTemplate3.1+
Twilio6.6+ (not including 8.0+ yet)
Vert.x HttpClient3.0+
Vert.x RxJava23.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.