Instrumented frameworks and libraries
Java sensor instruments Java-based applications by using several frameworks and tools. The following tables list all the technologies that are used to collect data about the performance of Java applications, along with their supported versions.
- HTTP libraries
- Databases
- Messaging services
- Logging frameworks
- LDAP frameworks
- Web and application servers
- Other instrumented technologies
- WebLogic Application Server
- JBoss/Wildfly Application Server
The following tables list all the frameworks and tools that are used to collect data about the performance of Java applications, along with their supported versions.
Versions in the following tables are automatically generated by the IBM integration test suite. They are expressed as closed intervals. For example, [1.0, 1.2] means that the first tested version is 1.0 and the last tested version is 1.2.
HTTP libraries
Name | Versions |
---|---|
Akka HTTP | [2.4, 2.4], [10.0, 10.2] |
Apache Async HttpClient | [4.0, 4.1] |
Apache Axis | [1.3, 1.4] |
Apache Axis2 | [1.5, 1.8] |
Apache CXF | [2.3, 2.7], [3.0, 3.5] |
Apache HttpClient | [3.0, 3.1], [4.3, 4.5] |
Apache Wicket | [6.0, 6.0], [7.4, 7.14], [8.5, 8.11], [9.0, 9.12] |
AsyncHttpClient (AHC) | [2.0, 2.12] |
AsyncHttpClient (NING) | [1.8, 1.9] |
Dropwizard | [0.9, 0.9], [1.0, 1.3], [2.0, 2.1] |
Feign | [9.0, 9.7], [10.0, 10.10], [11.0, 11.10], [12.3, 12.3] |
Finagle | [6.45, 6.45] |
GraphQL (Servlet) | [8.0, 8.0], [9.0, 9.3], [10.0, 10.1], [11.0, 11.1] |
GraphQL (Spring Boot) | [1.0, 1.0], [2.0, 2.0] |
GraphQL (Spring Webflux) | [1.0, 1.0], [2.0, 2.0] |
GraphQL Java | [0.0, 0.0], [4.2, 4.2], [5.0, 5.0], [6.0, 6.0], [7.0, 7.0], [8.0, 8.0], [9.7, 9.7], [10.0, 10.0], [11.0, 11.0], [12.0, 12.0], [13.0, 13.0], [17.3, 17.6], [18.5, 18.5], [19.5, 19.5], [20.2, 20.2] |
Grizzly | [2.1, 2.4], [3.0, 3.0], [4.0, 4.0] |
HTTP Kit | [2.2, 2.2] |
http4s[1] | [0.19.0, 0.21.31] |
HttpURLConnection | All supported JDKs |
Java HTTP Client | All supported JDKs |
JAX-RS | |
JAX-WS | |
Jersey | [1.1, 1.19], [2.20, 2.35] |
JSF | [2.0, 2.2] |
Micronaut | [1.1, 1.3], [2.0, 2.5] |
NanoHTTPD | [2.2, 2.2] |
OkHttp | [2.0, 2.7], [3.4, 3.14], [4.0, 4.10] |
Play Framework (Play2) | [2.3, 2.8] |
Ratpack | [1.5, 1.9] |
Scalatra | [2.3, 2.8] |
Servlet | [2.0, 2.0], [3.0, 3.1], [4.0, 4.0] |
Spray | [1.3, 1.3] |
Spring Boot Starter Web | [1.2.0.RELEASE, 1.5.22.RELEASE], [2.0.0.RELEASE, 2.7.8, 3.0.2] |
Spring Boot Starter Webflux | [2.0.0.RELEASE, 2.7.11, 3.0.4] |
Spring Cloud Gateway | [2.0.2.RELEASE, 2.2.10.RELEASE], [3.0.0, 3.0.5] |
Spring REST | [4.0.0.RELEASE, 4.3.30.RELEASE], [5.0.0.RELEASE, 5.3.25] |
Spring Web | [3.0.0.RELEASE, 3.2.18.RELEASE], [4.0.0.RELEASE, 4.3.30.RELEASE], [5.0.0.RELEASE, 5.3.23] |
Spring Webflux | [5.0.0.RELEASE, 5.3.23] |
Vaadin | [7.0, 7.7], [8.7, 8.14] |
Vert.x-Web | [3.1, 3.9], [4.0, 4.2] |
WebMethods Glue | [5.0, 5.0] |
Databases
Name | Versions |
---|---|
Amazon DynamoDB | [1.11.1034, 1.12.436], [2.1.4, 2.19.27] |
Amazon Elasticache | [1.1, 1.2] |
Amazon S3 | [1.11.835, 1.12.454], [2.1.4, 2.17.95] |
Apache HBase | [1.1, 1.5], [2.0, 2.2] |
Cassandra | [2.0, 2.2], [3.0, 3.11] |
Couchbase | [2.5, 2.7], [3.0, 3.2] |
Ehcache | [2.0, 2.10] |
Elasticsearch | [1.3, 1.7], [2.3, 2.4], [5.0, 5.0], [6.0, 6.8], [7.0, 7.17] |
FaunaDB | [1.2, 1.2] |
Google Cloud Bigtable (HBase 1.x) | [1.0, 1.29] |
Google Cloud Bigtable (HBase 2.x) | [1.1, 1.29] |
Google Cloud Storage | [1.2, 1.2] |
Hazelcast Java Client | [3.7, 3.12], [4.0, 4.2], [5.0, 5.2] |
IBM IMS TM Resource Adapter | [14.1.10, 15.3.1] |
JDBC | [4, 4] |
JDBC (H2 Database Engine) | [1.1, 1.4] |
JDBC (IBM DB2)[2] | [11.1, 11.5] |
JDBC (Microsoft SQL Server) | [6.2, 6.4], [7.0, 7.4], [8.2, 8.4], [9.2, 9.4] |
JDBC (MySQL Connector/J) | [5.1, 5.1], [6.0, 6.0], [8.0, 8.0] |
JDBC (Oracle) | [12.1, 12.1], [19.3, 19.3] |
JDBC (PostgreSQL) | [7.4, 7.4], [8.4, 8.4], [9.0, 9.1] |
JDBC (Sybase) | [1.3, 1.3] |
MongoDB (Java Driver) | [2.13, 2.13], [3.0, 3.12], [4.0, 4.4] |
MongoDB (ReactiveMongo) | [0.12.2, 0.16.0] |
MongoDB (Spring Data MongoDB) | [2.0.0.RELEASE, 2.7.12, 3.0.2] |
Neo4j | [1.5, 1.7] |
Redis (Jedis) | [2.8, 2.10], [3.0, 3.9] |
Redis (Lettuce) | [3.4, 3.4], [4.1, 4.5], [5.0, 5.3], [6.0, 6.2] |
Redis (Redisson) | [3.0, 3.19] |
Redis (Spring Data Redis) | [2.0.0.RELEASE, 2.7.8, 3.0.2] |
Redis (Spring Redis Reactor) | [2.0.0.RELEASE, 2.7.5, 3.0.4] |
Redis (Spring Session Data Redis) | [2.0.0.RELEASE, 2.6.0] |
Redis (Vert.x) | [3.1, 3.6] |
SpyMemcached | [2.10, 2.12] |
SpyMemcached (Amazon ElastiCache) | [1.1, 1.2] |
SpyMemcached (Google XMemcached) | [1.4, 1.4], [2.0, 2.4] |
SpyMemcached (Netty) | [4.1, 4.1] |
SpyMemcached (Shade) | [1.8, 1.10] |
Messaging services
Name | Versions |
---|---|
Aerospike | [3.3, 3.3], [4.0, 4.4], [5.0, 5.1], [6.1, 6.1] |
Akka Remote | [2.3, 2.8] |
Amazon Kinesis | [1.11.835, 1.12.436] |
Amazon SNS | [1.11.1034, 1.12.454] |
Amazon SQS Java Messaging Library | [1.0, 1.1] |
Apache Camel | [2.17, 2.25], [3.0, 3.20] |
Apache RocketMQ | [4.9, 4.9], [5.0, 5.1] |
AWS Java SDK For Amazon SQS | [1.11.872, 1.12.454] |
Executor Pools | All supported JDKs |
Fork Join Pool | All supported JDKs |
Google Cloud Pub/Sub (Client for Java) | [1.105, 1.123] |
Google Cloud Pub/Sub (Spring Cloud GCP 1.2) | [1.2.5.RELEASE, 1.2.8.RELEASE] |
Google Cloud Pub/Sub (Spring Cloud GCP 2 & 3) | [2.0.2, 2.0.11], [3.2.1, 3.4.7] |
gRPC | [1.2, 1.54] |
HornetQ | [2.2, 2.4] |
IBM MQ | [8.0, 8.0], [9.0, 9.3] |
JMS | |
JMS (Apache ActiveMQ) | [5.13, 5.18] |
JMS (Atomikos) | [3.6, 3.9], [4.0, 4.0], [5.0, 5.0] |
JMS (Solace) | [10.0, 10.19] |
Kafka (Apache)[3] | [0.8, 0.11], [1.0, 1.1], [2.0, 2.8], [3.0, 3.2] |
Kafka (Reactor) | [1.0, 1.3] |
Mule | [3.3, 3.9] |
Netflix Hystrix | [1.0, 1.5] |
RabbitMQ | [3.6, 3.6], [4.11, 4.11], [5.7, 5.17] |
RabbitMQ (Spring) | [1.0.0.RELEASE, 1.7.15.RELEASE], [2.0.0.RELEASE, 2.4.0] |
Tibco ESB |
Logging frameworks
Name | Versions |
---|---|
Java Util Logging | All supported JDKs |
Log4j | [1.2, 1.2] |
Log4j 2 | [2.4, 2.20] |
Log4j over SLF4J | [1.5, 1.7] |
Logback | [0.9, 0.9], [1.0, 1.4] |
SLF4J | [1.5, 1.7] |
SLF4J over Log4j | [1.1, 1.7] |
LDAP frameworks
Name | Versions |
---|---|
JNDI | All supported JDKs |
Ldaptive (Apache) | [1.0, 1.3] |
Ldaptive (JLDAP) | [1.0, 1.3] |
Ldaptive (JNDI) | [1.0, 1.3] |
Ldaptive (Netscape) | [1.0, 1.0] |
Ldaptive (UnboundID) | [1.0, 1.2] |
Netscape | [4.1, 4.1] |
Novell | [2009, 2009] |
UnboundID | [3.2, 3.2] |
Web and application servers
- Apache Tomcat
- Eclipse Jetty
- Glassfish / Payara
- IBM WebSphere
- JBoss AS / Wildfly
- Oracle / BEA Weblogic
- Pega Systems AS
- Sun ONE Server
Other instrumented technologies
Name | Versions |
---|---|
Akka Actor | [2.3, 2.6] |
Camunda BPM Spring Boot Starter Webapp[4] | [3.1.0, 3.4.0], [7.13.0, 7.17.0] |
Camunda External Task Client[5] | [1.0, 1.4], [7.15, 7.17] |
Camunda External Task Client (Java) | [1.0, 1.4], [7.15, 7.17] |
Camunda Platform 7 | |
Corba (Sun) | |
DistributeMe | [2.3, 2.3] |
Dubbo | [2.5, 2.7], [3.0, 3.0] |
EJB (Apache Open EJB) | [4.0, 4.7] |
EJB (Glassfish) | |
EJB (WebSphere) | [8.5, 8.5], [9.0, 9.0] |
FTP Commons | [3.5, 3.5] |
FTP JSCH | [0.1.38, 0.1.55] |
Google Cloud Store | [1.2, 1.2] |
Google GWT User | [1.5, 1.7], [2.0, 2.10] |
Java Mail | All supported JDKs |
Java RMI | All supported JDKs |
JBoss Data Grid (Infinispan Hot Rod client) | [9.0, 9.0], [10.0, 10.0], [11.0, 11.0], [12.0, 12.0], [13.0, 13.0], [14.0, 14.0] |
Kotlin Coroutines | [1.0, 1.5] |
Lift Actor | [2.6, 2.6], [3.3, 3.5] |
Quartz Scheduler | [1.7, 1.8], [2.0, 2.3] |
Spring Batch | [1.1.4.RELEASE, 1.5.22.RELEASE], [2.0.0.RELEASE, 2.7.12, 3.0.2] |
Spring Context | [3.0.0.RELEASE, 3.2.18.RELEASE], [4.0.9.RELEASE, 4.3.30.RELEASE], [5.0.20.RELEASE, 5.3.25] |
Spring Mail | [1.2.0.RELEASE, 1.5.22.RELEASE], [2.0.0.RELEASE, 2.7.12, 3.0.2] |
Spring Scheduler | [1.1.4.RELEASE, 1.5.22.RELEASE], [2.0.0.RELEASE, 2.7.12, 3.0.2] |
Sun ONC/RPC[6] | [1.1, 1.1] |
TABEX4 (BOI) | |
Vert.x (Hazelcast Cluster Manager) | [3.3, 3.3] |
WebLogic Application Server
Name | Versions |
---|---|
EJB (Weblogic) | [12, 12] |
JAX-RPC | |
Weblogic T3[7] | [12,12] |
JBoss/Wildfly Application Server
Name | Versions |
---|---|
EJB (JBoss / Wildfly) | [5, 5], [7, 7], [8, 8], [11, 11] |
JBoss Log Manager (Log4j) | [1.0, 1.3] |
JBoss Logging[8] | [3.0, 3.5] |
JBoss Scheduler | [4.2, 4.2] |
RESTEasy | [3.0, 3.15], [4.0, 4.7] |
Seam Mail (JBoss) | [3.1, 3.1] |
Opt-In support
You can use Java sensor to instrument Kafka Streams application and get insights into their performance.
Kafka Streams
In Kafka Streams, every stream operator is captured as an intermediate span. This feature impacts the performance of the application if you have a lot of data inflows. Do not use this feature in production environments.
To enable Kafka Streams, add the following lines to your host agent's configuration.yaml file:
com.instana.plugin.javatrace:
instrumentation:
plugins:
Kafka011StreamIntermediate: true
-
Only HTTP 1.x requests are traced. ↩︎
-
You can configure Db2 tracing by using agent configuration in the
configuration.yaml
file, or environmental variable or system properties in the instrumented JVM. Sample configurations:Agent configuration: com.instana.tracing: db2: trace-correlation: true db2CorrelationMode: dont-override db2CorrelationDelimiter: '|' db2CorrelationField: ClientHostname Environmental variable: INSTANA_DB2_TRACE_CORRELATION=true INSTANA_DB2_TRACE_CORRELATION_MODE=dont-override INSTANA_DB2_TRACE_CORRELATION_DELIMITER='|' INSTANA_DB2_TRACE_CORRELATION_FIELD=ClientHostname System properties: -Djdbc.db2.correlation.enable=true -Djdbc.db2.correlation.mod=dont-override -Djdbc.db2.correlation.delimiter=| -Djdbc.db2.correlation.field=ClientHostname
Note: Correlation (propagating TraceId and SpanId) is disabled by default. Propagation happens by using client information properties of Db2. The correlation field sets the field name. By default, it is "ClientHostname". The default delimiter is "|". If the correlation mode is set to "override" (default), the correlation data overwrites any existing value. However, if it is not set to "override" (default), the correlation data is appended to the existing value. ↩︎
-
Trace continuity is supported for Kafka starting from Kafka 0.11, which introduces support for record headers. ↩︎
-
Trace continuity between the activity spans is not yet supported. ↩︎
-
When you implement the handler class for the Camunda External Task Client, you need to use a named handler class. Lambda expression implementation of the handler is not supported. ↩︎
-
Trace continuity is not supported. Use the Instana SDK for trace correlation. ↩︎
-
Weblogic T3 correlation between EJB calls is supported when you configure Weblogics T3 through the following settings:
-
Agent configuration:
# General Tracing Settings com.instana.tracing: weblogic: trace-correlation: true
-
Environmental variable:
INSTANA_WEBLOGIC_EJB_TRACE_CORRELATION
-
System property:
-Dcom.instana.weblogic.ejb.trace.correlation=true`
This configuration works only if the T3 communication happens between Weblogic servers. However, if the Weblogic client is used outside the Weblogic server, correlation is not possible. ↩︎
-
-
Only the programmatic API is traced. Logging by using annotations like
@Message
or@MessageLogger
is not supported. ↩︎