Suppressing specific instrumentation
Disabling the agent entirely
Enable only specific instrumentation
System property
:
otel.instrumentation.common.default-enabled
Environment variable
:
OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED
Description
:
Set to
false
to disable all instrumentation in the agent.
System property
:
otel.instrumentation.[name].enabled
Environment variable
:
OTEL_INSTRUMENTATION_[NAME]_ENABLED
Description
:
Set to
true
to enable each desired instrumentation individually.
Enable manual instrumentation only
Suppressing specific agent instrumentation
You can suppress agent instrumentation of specific libraries.
| Library/Framework | Instrumentation name |
|---|---|
| Additional methods tracing |
methods
|
| Additional tracing annotations |
external-annotations
|
| Activej HTTP |
activej-http
|
| Avaje Jex |
avaje-jex
|
| Akka Actor |
akka-actor
|
| Akka HTTP |
akka-http
|
| Alibaba Druid |
alibaba-druid
|
| Apache Axis2 |
axis2
|
| Apache Camel |
camel
|
| Apache Cassandra |
cassandra
|
| Apache CXF |
cxf
|
| Apache DBCP |
apache-dbcp
|
| Apache Dubbo |
apache-dubbo
|
| Apache ElasticJob |
apache-elasticjob
|
| Apache Geode |
geode
|
| Apache HttpAsyncClient |
apache-httpasyncclient
|
| Apache HttpClient |
apache-httpclient
|
| Apache Iceberg |
iceberg
|
| Apache Kafka |
kafka
|
| Apache MyFaces |
jsf-myfaces
|
| Apache Pekko Actor |
pekko-actor
|
| Apache Pekko HTTP |
pekko-http
|
| Apache Pulsar |
pulsar
|
| Apache RocketMQ |
rocketmq-client
|
| Apache Shenyu |
apache-shenyu
|
| Apache Struts 2 |
struts
|
| Apache Tapestry |
tapestry
|
| Apache Tomcat |
tomcat
|
| Apache Wicket |
wicket
|
| Armeria |
armeria
|
| AsyncHttpClient (AHC) |
async-http-client
|
| AWS Lambda |
aws-lambda
|
| AWS SDK |
aws-sdk
|
| Azure SDK |
azure-core
|
| Clickhouse Client |
clickhouse
|
| Couchbase |
couchbase
|
| C3P0 |
c3p0
|
| Dropwizard Views |
dropwizard-views
|
| Dropwizard Metrics |
dropwizard-metrics
|
| Eclipse Grizzly |
grizzly
|
| Eclipse Jersey |
jersey
|
| Eclipse Jetty |
jetty
|
| Eclipse Jetty HTTP Client |
jetty-httpclient
|
| Eclipse Metro |
metro
|
| Eclipse Mojarra |
jsf-mojarra
|
| Eclipse Vert.x HttpClient |
vertx-http-client
|
| Eclipse Vert.x Kafka Client |
vertx-kafka-client
|
| Eclipse Vert.x Redis Client |
vertx-redis-client
|
| Eclipse Vert.x RxJava |
vertx-rx-java
|
| Eclipse Vert.x SQL Client |
vertx-sql-client
|
| Eclipse Vert.x Web |
vertx-web
|
| Elasticsearch API client |
elasticsearch-api-client
|
| Elasticsearch client |
elasticsearch-transport
|
| Elasticsearch REST client |
elasticsearch-rest
|
| Failsafe |
failsafe
|
| Finagle |
finagle-http
|
| Google Guava |
guava
|
| Google HTTP client |
google-http-client
|
| Google Web Toolkit |
gwt
|
| Grails |
grails
|
| GraphQL Java |
graphql-java
|
| GRPC |
grpc
|
| Helidon |
helidon
|
| Hibernate |
hibernate
|
| Hibernate Reactive |
hibernate-reactive
|
| HikariCP |
hikaricp
|
| InfluxDB |
influxdb
|
| Java HTTP Client |
java-http-client
|
| Java HTTP Server |
java-http-server
|
Java
HttpURLConnection
|
http-url-connection
|
| Java JDBC |
jdbc
|
Java JDBC
DataSource
|
jdbc-datasource
|
| Java RMI |
rmi
|
| Java Runtime |
runtime-telemetry
|
| Java Servlet |
servlet
|
| java.util.concurrent |
executors
|
| java.util.logging |
java-util-logging
|
| Javalin |
javalin
|
| JAX-RS (Client) |
jaxrs-client
|
| JAX-RS (Server) |
jaxrs
|
| JAX-WS |
jaxws
|
| JBoss Logging Appender |
jboss-logmanager-appender
|
| JBoss Logging MDC |
jboss-logmanager-mdc
|
| JFinal |
jfinal
|
| JMS |
jms
|
| Jodd HTTP |
jodd-http
|
| JSP |
jsp
|
| K8s Client |
kubernetes-client
|
| Ktor |
ktor
|
| kotlinx.coroutines |
kotlinx-coroutines
|
| Log4j Appender |
log4j-appender
|
| Log4j MDC (1.x) |
log4j-mdc
|
| Log4j Context Data (2.x) |
log4j-context-data
|
| Logback Appender |
logback-appender
|
| Logback MDC |
logback-mdc
|
| Micrometer |
micrometer
|
| MongoDB |
mongo
|
| MyBatis |
mybatis
|
| NATS Client |
nats
|
| Netflix Hystrix |
hystrix
|
| Netty |
netty
|
| OkHttp |
okhttp
|
| OpenLiberty |
liberty
|
| OpenAI |
openai
|
| OpenSearch Java |
opensearch-java
|
| OpenSearch REST |
opensearch-rest
|
| OpenTelemetry Extension Annotations |
opentelemetry-extension-annotations
|
| OpenTelemetry Instrumentation Annotations |
opentelemetry-instrumentation-annotations
|
| OpenTelemetry API |
opentelemetry-api
|
| Oracle UCP |
oracle-ucp
|
| OSHI (Operating System and Hardware Information) |
oshi
|
| Payara |
payara
|
| Play Framework |
play
|
| Play WS HTTP Client |
play-ws
|
| Powerjob |
powerjob
|
| Quarkus |
quarkus
|
| Quartz |
quartz
|
| R2DBC |
r2dbc
|
| RabbitMQ Client |
rabbitmq
|
| Ratpack |
ratpack
|
| ReactiveX RxJava |
rxjava
|
| Reactor |
reactor
|
| Reactor Kafka |
reactor-kafka
|
| Reactor Netty |
reactor-netty
|
| Redis Jedis |
jedis
|
| Redis Lettuce |
lettuce
|
| Rediscala |
rediscala
|
| Redisson |
redisson
|
| Restlet |
restlet
|
| Scala ForkJoinPool |
scala-fork-join
|
| Spark Web Framework |
spark
|
| Spring Batch |
spring-batch
|
| Spring Boot Actuator Autoconfigure |
spring-boot-actuator-autoconfigure
|
| Spring Cloud AWS |
spring-cloud-aws
|
| Spring Cloud Gateway |
spring-cloud-gateway
|
| Spring Core |
spring-core
|
| Spring Data |
spring-data
|
| Spring JMS |
spring-jms
|
| Spring Integration |
spring-integration
|
| Spring Kafka |
spring-kafka
|
| Spring Pulsar |
spring-pulsar
|
| Spring RabbitMQ |
spring-rabbit
|
| Spring RMI |
spring-rmi
|
| Spring Scheduling |
spring-scheduling
|
| Spring Security Config |
spring-security-config
|
| Spring Web |
spring-web
|
| Spring WebFlux |
spring-webflux
|
| Spring Web MVC |
spring-webmvc
|
| Spring Web Services |
spring-ws
|
| Spymemcached |
spymemcached
|
| Tomcat JDBC |
tomcat-jdbc
|
| Twilio SDK |
twilio
|
| Twitter Finatra |
finatra
|
| Undertow |
undertow
|
| Vaadin |
vaadin
|
| Vibur DBCP |
vibur-dbcp
|
| XXL-JOB |
xxl-job
|
| ZIO |
zio
|
Suppressing controller and/or view spans
Some instrumentations (e.g. Spring Web MVC instrumentation) produce
SpanKind.Internal
spans to capture the
controller and/or view execution. These spans can be suppressed using the
configuration settings below, without suppressing the entire instrumentation
which would also disable the instrumentation’s capturing of
http.route
and
associated span name on the parent
SpanKind.Server
span.
System property
:
otel.instrumentation.common.experimental.controller-telemetry.enabled
Environment variable
:
OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_CONTROLLER_TELEMETRY_ENABLED
Default
: false
Description
:
Set to
true
to enable controller telemetry.
System property
:
otel.instrumentation.common.experimental.view-telemetry.enabled
Environment variable
:
OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_VIEW_TELEMETRY_ENABLED
Default
: false
Description
:
Set to
true
to enable view telemetry.
Instrumentation span suppression behavior
- Spans produced by the Reactor Netty HTTP client instrumentation would have duplicate HTTP client spans produced by the Netty instrumentation;
- Dynamo DB spans produced by the AWS SDK instrumentation would have children HTTP client spans produced by its internal HTTP client library (which is also instrumented);
- Spans produced by the Tomcat instrumentation would have duplicate HTTP server spans produced by the generic Servlet API instrumentation.
System property
:
otel.instrumentation.experimental.span-suppression-strategy
Environment variable
:
OTEL_INSTRUMENTATION_EXPERIMENTAL_SPAN_SUPPRESSION_STRATEGY
Description : The Java agent span suppression strategy. The following 3 strategies are supported:
-
semconv: The agent will suppress duplicate semantic conventions. This is the default behavior of the Java agent. -
span-kind: The agent will suppress spans with the same kind (exceptINTERNAL). -
none: The agent will not suppress anything at all. We do not recommend using this option for anything other than debug purposes, as it generates lots of duplicate telemetry data .
Using the default
semconv
suppression strategy would result in 2 nested
CLIENT
spans:
-
CLIENTspan with database client semantic attributes emitted by the database client instrumentation; -
CLIENTspan with HTTP client semantic attributes emitted by the Reactor Netty instrumentation.
Using the suppression strategy
span-kind
would result in just one span:
-
CLIENTspan with database client semantic attributes emitted by the database client instrumentation.
Both Reactor Netty and Netty instrumentations would be suppressed, as they also
emit
CLIENT
spans.
Finally, using the suppression strategy
none
would result in 3 spans: