Придушення конкретної інструментації

Вимкнення агента повністю

System property: otel.javaagent.enabledEnvironment variable: OTEL_JAVAAGENT_ENABLED

Description: Встановіть значення false, щоб повністю вимкнути агента.

Увімкнення лише конкретної інструментації

Ви можете вимкнути всю автоматичну стандартну інструментацію і вибірково знову увімкнути окремі інструментації. Це може бути бажано для зменшення часу запуску або для більшого контролю над тим, яка інструментація застосовується.

System property: otel.instrumentation.common.default-enabledEnvironment variable: OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED

Description: Встановіть значення false, щоб вимкнути всю інструментацію в агенті.

System property: otel.instrumentation.[name].enabledEnvironment variable: OTEL_INSTRUMENTATION_[NAME]_ENABLED

Description: Встановіть значення true, щоб увімкнути кожну бажану інструментацію окремо.

Увімкнення лише ручної інструментації

Ви можете придушити всю автоматичну інструментацію, але мати підтримку ручної інструментації з @WithSpan та звичайними взаємодіями API, використовуючи -Dotel.instrumentation.common.default-enabled=false -Dotel.instrumentation.opentelemetry-api.enabled=true -Dotel.instrumentation.opentelemetry-instrumentation-annotations.enabled=true

Придушення конкретної інструментації агента

Ви можете придушити інструментацію агента для конкретних бібліотек.

System property: otel.instrumentation.[name].enabledEnvironment variable: OTEL_INSTRUMENTATION_[NAME]_ENABLED

Description: Встановіть значення false, щоб придушити інструментацію агента для конкретних бібліотек, де [name] — це відповідна назва інструментації:

Бібліотека/ФреймворкНазва інструментації
Додаткове трасування методівmethods
Додаткові анотації трасуванняexternal-annotations
Activej HTTPactivej-http
Avaje Jexavaje-jex
Akka Actorakka-actor
Akka HTTPakka-http
Alibaba Druidalibaba-druid
Apache Axis2axis2
Apache Camelcamel
Apache Cassandracassandra
Apache CXFcxf
Apache DBCPapache-dbcp
Apache Dubboapache-dubbo
Apache ElasticJobapache-elasticjob
Apache Geodegeode
Apache HttpAsyncClientapache-httpasyncclient
Apache HttpClientapache-httpclient
Apache Icebergiceberg
Apache Kafkakafka
Apache MyFacesjsf-myfaces
Apache Pekko Actorpekko-actor
Apache Pekko HTTPpekko-http
Apache Pulsarpulsar
Apache RocketMQrocketmq-client
Apache Shenyuapache-shenyu
Apache Struts 2struts
Apache Tapestrytapestry
Apache Tomcattomcat
Apache Wicketwicket
Armeriaarmeria
AsyncHttpClient (AHC)async-http-client
AWS Lambdaaws-lambda
AWS SDKaws-sdk
Azure SDKazure-core
Clickhouse Clientclickhouse
Couchbasecouchbase
C3P0c3p0
Dropwizard Viewsdropwizard-views
Dropwizard Metricsdropwizard-metrics
Eclipse Grizzlygrizzly
Eclipse Jerseyjersey
Eclipse Jettyjetty
Eclipse Jetty HTTP Clientjetty-httpclient
Eclipse Metrometro
Eclipse Mojarrajsf-mojarra
Eclipse Vert.x HttpClientvertx-http-client
Eclipse Vert.x Kafka Clientvertx-kafka-client
Eclipse Vert.x Redis Clientvertx-redis-client
Eclipse Vert.x RxJavavertx-rx-java
Eclipse Vert.x SQL Clientvertx-sql-client
Eclipse Vert.x Webvertx-web
Elasticsearch API clientelasticsearch-api-client
Elasticsearch clientelasticsearch-transport
Elasticsearch REST clientelasticsearch-rest
Failsafefailsafe
Finaglefinagle-http
Google Guavaguava
Google HTTP clientgoogle-http-client
Google Web Toolkitgwt
Grailsgrails
GraphQL Javagraphql-java
GRPCgrpc
Helidonhelidon
Hibernatehibernate
Hibernate Reactivehibernate-reactive
HikariCPhikaricp
InfluxDBinfluxdb
Java HTTP Clientjava-http-client
Java HTTP Serverjava-http-server
Java HttpURLConnectionhttp-url-connection
Java JDBCjdbc
Java JDBC DataSourcejdbc-datasource
Java RMIrmi
Java Runtimeruntime-telemetry
Java Servletservlet
java.util.concurrentexecutors
java.util.loggingjava-util-logging
Javalinjavalin
JAX-RS (Client)jaxrs-client
JAX-RS (Server)jaxrs
JAX-WSjaxws
JBoss Logging Appenderjboss-logmanager-appender
JBoss Logging MDCjboss-logmanager-mdc
JFinaljfinal
JMSjms
Jodd HTTPjodd-http
JSPjsp
K8s Clientkubernetes-client
Ktorktor
kotlinx.coroutineskotlinx-coroutines
Log4j Appenderlog4j-appender
Log4j MDC (1.x)log4j-mdc
Log4j Context Data (2.x)log4j-context-data
Logback Appenderlogback-appender
Logback MDClogback-mdc
Micrometermicrometer
MongoDBmongo
MyBatismybatis
NATS Clientnats
Netflix Hystrixhystrix
Nettynetty
OkHttpokhttp
OpenLibertyliberty
OpenAIopenai
OpenSearch Javaopensearch-java
OpenSearch RESTopensearch-rest
OpenTelemetry Extension Annotationsopentelemetry-extension-annotations
OpenTelemetry Instrumentation Annotationsopentelemetry-instrumentation-annotations
OpenTelemetry APIopentelemetry-api
Oracle UCPoracle-ucp
OSHI (Operating System and Hardware Information)oshi
Payarapayara
Play Frameworkplay
Play WS HTTP Clientplay-ws
Powerjobpowerjob
Quarkusquarkus
Quartzquartz
R2DBCr2dbc
RabbitMQ Clientrabbitmq
Ratpackratpack
ReactiveX RxJavarxjava
Reactorreactor
Reactor Kafkareactor-kafka
Reactor Nettyreactor-netty
Redis Jedisjedis
Redis Lettucelettuce
Rediscalarediscala
Redissonredisson
Restletrestlet
Scala ForkJoinPoolscala-fork-join
Spark Web Frameworkspark
Spring Batchspring-batch
Spring Boot Actuator Autoconfigurespring-boot-actuator-autoconfigure
Spring Cloud AWSspring-cloud-aws
Spring Cloud Gatewayspring-cloud-gateway
Spring Corespring-core
Spring Dataspring-data
Spring JMSspring-jms
Spring Integrationspring-integration
Spring Kafkaspring-kafka
Spring Pulsarspring-pulsar
Spring RabbitMQspring-rabbit
Spring RMIspring-rmi
Spring Schedulingspring-scheduling
Spring Security Configspring-security-config
Spring Webspring-web
Spring WebFluxspring-webflux
Spring Web MVCspring-webmvc
Spring Web Servicesspring-ws
Spymemcachedspymemcached
Tomcat JDBCtomcat-jdbc
Twilio SDKtwilio
Twitter Finatrafinatra
Undertowundertow
Vaadinvaadin
Vibur DBCPvibur-dbcp
XXL-JOBxxl-job
ZIOzio

Примітка: При використанні змінних середовища, дефіси (-) слід замінити на підкреслення (_). Наприклад, щоб придушити трасування з бібліотеки akka-actor, встановіть OTEL_INSTRUMENTATION_AKKA_ACTOR_ENABLED на false.

Придушення відрізків контролера та/або представлення

Деякі інструментації (наприклад, інструментація Spring Web MVC) створюють SpanKind.Internal відрізки для захоплення виконання контролера та/або представлення. Ці відрізки можна придушити за допомогою наведених нижче налаштувань конфігурації, не придушуючи всю інструментацію, що також вимкне захоплення http.route та повʼязаної назви відрізка на батьківському SpanKind.Server відрізку.

System property: otel.instrumentation.common.experimental.controller-telemetry.enabledEnvironment variable: OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_CONTROLLER_TELEMETRY_ENABLED

Default: false
Description: Встановіть значення true, щоб увімкнути телеметрію контролера.

System property: otel.instrumentation.common.experimental.view-telemetry.enabledEnvironment variable: OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_VIEW_TELEMETRY_ENABLED

Default: false
Description: Встановіть значення true, щоб увімкнути телеметрію представлення.

Поведінка придушення відрізків інструментації

Деякі бібліотеки, які інструментує цей агент, своєю чергою використовують низькорівневі бібліотеки, які також інструментуються. Це зазвичай призводить до вкладених відрізків, що містять дубльовані телеметричні дані. Наприклад:

  • Відрізки, створені інструментацією клієнта HTTP Reactor Netty, матимуть дубльовані відрізки клієнта HTTP, створені інструментацією Netty;
  • Відрізки Dynamo DB, створені інструментацією AWS SDK, матимуть дочірні відрізки клієнта HTTP, створені його внутрішньою бібліотекою клієнта HTTP (яка також інструментується);
  • Відрізки, створені інструментацією Tomcat, матимуть дубльовані відрізки сервера HTTP, створені загальною інструментацією API сервлета.

Java агент запобігає цим ситуаціям, виявляючи та придушуючи вкладені відрізки, що дублюють телеметричні дані. Поведінку придушення можна налаштувати за допомогою наступної опції конфігурації:

System property: otel.instrumentation.experimental.span-suppression-strategyEnvironment variable: OTEL_INSTRUMENTATION_EXPERIMENTAL_SPAN_SUPPRESSION_STRATEGY

Description: Стратегія придушення відрізків Java агента. Підтримуються наступні 3 стратегії:

  • semconv: Агент придушуватиме дубльовані семантичні домовленості. Це стандартна поведінка Java агента.
  • span-kind: Агент придушуватиме відрізки з однаковим типом (крім INTERNAL).
  • none: Агент не придушуватиме нічого. Ми не рекомендуємо використовувати цю опцію для будь-чого, крім налагодження, оскільки вона генерує багато дубльованих телеметричних даних.

Наприклад, припустимо, що ми інструментуємо клієнт бази даних, який внутрішньо використовує клієнт HTTP Reactor Netty; який, своєю чергою, використовує Netty.

Використання стандартної стратегії придушення semconv призведе до 2 вкладених CLIENT відрізків:

  • CLIENT відрізок з семантичними атрибутами клієнта бази даних, створений інструментацією клієнта бази даних;
  • CLIENT відрізок з семантичними атрибутами клієнта HTTP, створений інструментацією Reactor Netty.

Інструментація Netty буде придушена, оскільки вона дублює інструментацію клієнта HTTP Reactor Netty.

Використання стратегії придушення span-kind призведе до одного відрізка:

  • CLIENT відрізок з семантичними атрибутами клієнта бази даних, створений інструментацією клієнта бази даних.

Інструментації як Reactor Netty, так і Netty будуть придушені, оскільки вони також створюють CLIENT відрізки.

Нарешті, використання стратегії придушення none призведе до 3 відрізків:

  • CLIENT відрізок з семантичними атрибутами клієнта бази даних, створений інструментацією клієнта бази даних;
  • CLIENT відрізок з семантичними атрибутами клієнта HTTP, створений інструментацією Reactor Netty;
  • CLIENT відрізок з семантичними атрибутами клієнта HTTP, створений інструментацією Netty.

Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (2a3c5648)