diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 2f0d88987b57..ce84a39bc10a 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -5,7 +5,7 @@ libraries: activej: - name: activej-http-6.0 - description: This instrumentation provides SERVER spans and metrics for the ActiveJ + description: This instrumentation enables SERVER spans and metrics for the ActiveJ HTTP server. source_path: instrumentation/activej-http-6.0 minimum_java_version: 17 @@ -77,6 +77,8 @@ libraries: - com.typesafe.akka:akka-actor_2.13:[2.5.23,2.6) - com.typesafe.akka:akka-actor_2.11:[2.5,) - name: akka-http-10.0 + description: This instrumentation enables CLIENT and SERVER spans and metrics + for the Akka HTTP client and server. source_path: instrumentation/akka/akka-http-10.0 scope: name: io.opentelemetry.akka-http-10.0 @@ -258,7 +260,7 @@ libraries: apache: - name: apache-dbcp-2.0 description: | - This instrumentation provides database connection pools metrics for Apache DBCP. + This instrumentation enables database connection pools metrics for Apache DBCP. The instrumentation uses `MBeanRegistration` methods for lifecycle detection, therefore it only activates if the `BasicDataSource` is registered to an `MBeanServer`. If using Spring Boot, this happens automatically as all Spring beans that support JMX registration are automatically registered by default. source_path: instrumentation/apache-dbcp-2.0 scope: @@ -380,7 +382,7 @@ libraries: - name: rpc.system type: STRING - name: apache-httpasyncclient-4.1 - description: This instrumentation provides CLIENT spans and metrics for the Apache + description: This instrumentation enables CLIENT spans and metrics for the Apache HttpAsyncClient. source_path: instrumentation/apache-httpasyncclient-4.1 scope: @@ -426,7 +428,7 @@ libraries: - name: url.full type: STRING - name: apache-httpclient-2.0 - description: This instrumentation provides CLIENT spans and metrics for versions + description: This instrumentation enables CLIENT spans and metrics for versions 2 and 3 of the Apache HttpClient. source_path: instrumentation/apache-httpclient/apache-httpclient-2.0 scope: @@ -470,7 +472,7 @@ libraries: - name: url.full type: STRING - name: apache-httpclient-4.0 - description: This instrumentation provides CLIENT spans and metrics for version + description: This instrumentation enables CLIENT spans and metrics for version 4 of the Apache HttpClient. source_path: instrumentation/apache-httpclient/apache-httpclient-4.0 scope: @@ -565,6 +567,8 @@ libraries: - name: url.full type: STRING - name: apache-httpclient-5.0 + description: This instrumentation enables CLIENT spans and metrics for version + 5 of the Apache HttpClient. source_path: instrumentation/apache-httpclient/apache-httpclient-5.0 scope: name: io.opentelemetry.apache-httpclient-5.0 @@ -589,14 +593,76 @@ libraries: type: STRING - name: server.port type: LONG + spans: + - span_kind: CLIENT + attributes: + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.request.method_original + type: STRING + - name: http.response.status_code + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.full + type: STRING - name: apache-httpclient-5.2 + description: This instrumentation provides a library integration that enables + CLIENT spans and metrics for the Apache HttpClient. source_path: instrumentation/apache-httpclient/apache-httpclient-5.2 scope: name: io.opentelemetry.apache-httpclient-5.2 target_versions: library: - org.apache.httpcomponents.client5:httpclient5:5.2.1 + telemetry: + - when: default + metrics: + - name: http.client.request.duration + description: Duration of HTTP client requests. + type: HISTOGRAM + unit: s + attributes: + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + spans: + - span_kind: CLIENT + attributes: + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.request.method_original + type: STRING + - name: http.request.resend_count + type: LONG + - name: http.response.status_code + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.full + type: STRING - name: apache-shenyu-2.4 + description: | + This instrumentation does not emit telemetry on its own. Instead, it augments existing SERVER spans and HTTP server metrics with the HTTP route and Shenyu specific attributes. source_path: instrumentation/apache-shenyu-2.4 scope: name: io.opentelemetry.apache-shenyu-2.4 @@ -605,11 +671,14 @@ libraries: - org.apache.shenyu:shenyu-web:[2.4.0,) configurations: - name: otel.instrumentation.apache-shenyu.experimental-span-attributes - description: Enables experimental span attributes for Apache Shenyu instrumentation. + description: | + Enables experimental `apache-shenyu.meta.` prefixed span attributes `app-name`, `service-name`, `context-path`, `param-types`, `id`, `method-name`, `rpc-type`, `path` and `rpc-ext`. type: boolean default: false armeria: - name: armeria-1.3 + description: This instrumentation enables CLIENT and SERVER spans and metrics + for the Armeria HTTP client and server. source_path: instrumentation/armeria/armeria-1.3 scope: name: io.opentelemetry.armeria-1.3 @@ -618,7 +687,93 @@ libraries: - com.linecorp.armeria:armeria:[1.3.0,) library: - com.linecorp.armeria:armeria:1.3.0 + telemetry: + - when: default + metrics: + - name: http.client.request.duration + description: Duration of HTTP client requests. + type: HISTOGRAM + unit: s + attributes: + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: http.server.request.duration + description: Duration of HTTP server requests. + type: HISTOGRAM + unit: s + attributes: + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: http.route + type: STRING + - name: network.protocol.version + type: STRING + - name: url.scheme + type: STRING + spans: + - span_kind: CLIENT + attributes: + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: network.peer.address + type: STRING + - name: network.peer.port + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.full + type: STRING + - span_kind: SERVER + attributes: + - name: client.address + type: STRING + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: http.route + type: STRING + - name: network.peer.address + type: STRING + - name: network.peer.port + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.path + type: STRING + - name: url.query + type: STRING + - name: url.scheme + type: STRING + - name: user_agent.original + type: STRING - name: armeria-grpc-1.14 + description: This instrumentation enables CLIENT and SERVER spans and metrics + for the Armeria gRPC client and server. source_path: instrumentation/armeria/armeria-grpc-1.14 scope: name: io.opentelemetry.armeria-grpc-1.14 @@ -627,19 +782,97 @@ libraries: - com.linecorp.armeria:armeria-grpc:[1.14.0,) async: - name: async-http-client-1.9 + description: This instrumentation enables CLIENT spans and metrics for version + 1 of the AsyncHttpClient (AHC) HTTP client. source_path: instrumentation/async-http-client/async-http-client-1.9 scope: name: io.opentelemetry.async-http-client-1.9 target_versions: javaagent: - com.ning:async-http-client:[1.9.0,) + telemetry: + - when: default + metrics: + - name: http.client.request.duration + description: Duration of HTTP client requests. + type: HISTOGRAM + unit: s + attributes: + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: server.address + type: STRING + - name: server.port + type: LONG + spans: + - span_kind: CLIENT + attributes: + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.request.method_original + type: STRING + - name: http.response.status_code + type: LONG + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.full + type: STRING - name: async-http-client-2.0 + description: This instrumentation enables CLIENT spans and metrics for version + 2 of the AsyncHttpClient (AHC) HTTP client. source_path: instrumentation/async-http-client/async-http-client-2.0 scope: name: io.opentelemetry.async-http-client-2.0 target_versions: javaagent: - org.asynchttpclient:async-http-client:[2.0.0,) + telemetry: + - when: default + metrics: + - name: http.client.request.duration + description: Duration of HTTP client requests. + type: HISTOGRAM + unit: s + attributes: + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + spans: + - span_kind: CLIENT + attributes: + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.request.method_original + type: STRING + - name: http.response.status_code + type: LONG + - name: network.peer.address + type: STRING + - name: network.peer.port + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.full + type: STRING avaje: - name: avaje-jex-3.0 description: | @@ -886,7 +1119,7 @@ libraries: camel: - name: camel-2.20 description: | - This instrumentation provides tracing for Apache Camel 2.x applications by generating spans for each route execution. For Camel versions 3.5 and newer, users should instead use the native 'camel-opentelemetry' component provided directly by the Camel project. + This instrumentation enables tracing for Apache Camel 2.x applications by generating spans for each route execution. For Camel versions 3.5 and newer, users should instead use the native 'camel-opentelemetry' component provided directly by the Camel project. source_path: instrumentation/camel-2.20 scope: name: io.opentelemetry.camel-2.20 @@ -1100,9 +1333,9 @@ libraries: default: false elasticsearch: - name: elasticsearch-api-client-7.16 - description: This instrumentation provides client spans for Elasticsearch API - client requests for version 7 of the client. Versions 8.10 and later have native - support for OpenTelemetry. + description: This instrumentation enables client spans for Elasticsearch API client + requests for version 7 of the client. Versions 8.10 and later have native support + for OpenTelemetry. source_path: instrumentation/elasticsearch/elasticsearch-api-client-7.16 scope: name: io.opentelemetry.elasticsearch-api-client-7.16 @@ -1111,7 +1344,7 @@ libraries: - co.elastic.clients:elasticsearch-java:[7.16,7.17.20) - co.elastic.clients:elasticsearch-java:[8.0.0,8.10) - name: elasticsearch-rest-5.0 - description: This instrumentation provides tracing for Elasticsearch REST clients. + description: This instrumentation enables tracing for Elasticsearch REST clients. source_path: instrumentation/elasticsearch/elasticsearch-rest-5.0 scope: name: io.opentelemetry.elasticsearch-rest-5.0 @@ -1142,7 +1375,7 @@ libraries: - name: url.full type: STRING - name: elasticsearch-rest-6.4 - description: This instrumentation provides tracing for Elasticsearch REST clients. + description: This instrumentation enables tracing for Elasticsearch REST clients. source_path: instrumentation/elasticsearch/elasticsearch-rest-6.4 scope: name: io.opentelemetry.elasticsearch-rest-6.4 @@ -1171,7 +1404,7 @@ libraries: - name: url.full type: STRING - name: elasticsearch-rest-7.0 - description: This instrumentation provides tracing for Elasticsearch REST clients. + description: This instrumentation enables tracing for Elasticsearch REST clients. source_path: instrumentation/elasticsearch/elasticsearch-rest-7.0 scope: name: io.opentelemetry.elasticsearch-rest-7.0 @@ -1203,7 +1436,7 @@ libraries: type: STRING - name: elasticsearch-transport-5.0 description: | - This instrumentation provides client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. + This instrumentation enables client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. source_path: instrumentation/elasticsearch/elasticsearch-transport-5.0 scope: name: io.opentelemetry.elasticsearch-transport-5.0 @@ -1279,7 +1512,7 @@ libraries: type: LONG - name: elasticsearch-transport-5.3 description: | - This instrumentation provides client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. + This instrumentation enables client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. source_path: instrumentation/elasticsearch/elasticsearch-transport-5.3 scope: name: io.opentelemetry.elasticsearch-transport-5.3 @@ -1365,7 +1598,7 @@ libraries: type: LONG - name: elasticsearch-transport-6.0 description: | - This instrumentation provides client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. + This instrumentation enables client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. source_path: instrumentation/elasticsearch/elasticsearch-transport-6.0 scope: name: io.opentelemetry.elasticsearch-transport-6.0 @@ -1468,6 +1701,8 @@ libraries: default: false finagle: - name: finagle-http-23.11 + description: | + This instrumentation for Finagle HTTP clients and servers ensures that telemetry is correctly generated by the underlying Netty instrumentation. It augments existing telemetry by bridging the gap between Finagle's abstractions and Netty's pipeline, primarily for context propagation. source_path: instrumentation/finagle-http-23.11 scope: name: io.opentelemetry.finagle-http-23.11 @@ -1477,6 +1712,9 @@ libraries: - com.twitter:finagle-http_2.12:[23.11.0,] finatra: - name: finatra-2.9 + description: This instrumentation for the Finatra web framework augments the telemetry + generated by the underlying Netty instrumentation. It provides more specific, + high-level context, such as route information, to the spans generated by Netty. source_path: instrumentation/finatra-2.9 scope: name: io.opentelemetry.finatra-2.9 @@ -1484,6 +1722,15 @@ libraries: javaagent: - com.twitter:finatra-http_2.11:[2.9.0,] - com.twitter:finatra-http_2.12:[2.9.0,] + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: code.function + type: STRING + - name: code.namespace + type: STRING geode: - name: geode-1.4 source_path: instrumentation/geode-1.4 @@ -2194,6 +2441,8 @@ libraries: - org.apache.tomcat:tomcat-jasper:[7.0.19,10) kafka: - name: kafka-clients-0.11 + description: | + This instrumentation enables messaging spans and metrics for Apache Kafka 0.11 clients. It automatically traces message production and consumption, propagates context, and emits metrics for production and consumption. source_path: instrumentation/kafka/kafka-clients/kafka-clients-0.11 scope: name: io.opentelemetry.kafka-clients-0.11 @@ -2209,7 +2458,17 @@ libraries: description: Enables the capture of the experimental consumer attribute "kafka.record.queue_time_ms" type: boolean default: false + - name: otel.instrumentation.messaging.experimental.capture-headers + description: A comma-separated list of header names to capture as span attributes. + type: list + default: '' + - name: otel.instrumentation.messaging.experimental.receive-telemetry.enabled + description: Enables experimental receive telemetry for Kafka instrumentation. + type: boolean + default: false - name: kafka-clients-2.6 + description: | + This instrumentation provides a library integeration that enables messaging spans and metrics for Apache Kafka 2.6+ clients. source_path: instrumentation/kafka/kafka-clients/kafka-clients-2.6 scope: name: io.opentelemetry.kafka-clients-2.6 @@ -3965,6 +4224,10 @@ internal: source_path: instrumentation/internal/internal-reflection scope: name: io.opentelemetry.internal-reflection +- name: opentelemetry-api-1.52 + source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.52 + scope: + name: io.opentelemetry.opentelemetry-api-1.52 - name: opentelemetry-instrumentation-api source_path: instrumentation/opentelemetry-instrumentation-api scope: diff --git a/instrumentation-docs/collect.sh b/instrumentation-docs/collect.sh index 83f2c3c4ad2b..ad614060ddb2 100755 --- a/instrumentation-docs/collect.sh +++ b/instrumentation-docs/collect.sh @@ -10,6 +10,7 @@ readonly INSTRUMENTATIONS=( # : : [ gradle-task-suffix ] "activej-http-6.0:javaagent:test" "akka:akka-http-10.0:javaagent:test" + "armeria:armeria-grpc-1.14:javaagent:test" "apache-httpasyncclient-4.1:javaagent:test" "alibaba-druid-1.0:javaagent:test" "alibaba-druid-1.0:javaagent:testStableSemconv" @@ -82,6 +83,13 @@ readonly INSTRUMENTATIONS=( "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7Test" "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestStableSemconv" "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestExperimental" + "apache-httpclient:apache-httpclient-5.2:library:test" + "armeria:armeria-1.3:javaagent:test" + "async-http-client:async-http-client-1.9:javaagent:test" + "async-http-client:async-http-client-2.0:javaagent:test" + "apache-dubbo-2.7:javaagent:testDubbo" + "finagle-http-23.11:javaagent:test" + "finatra-2.9:javaagent:test" ) readonly COLIMA_INSTRUMENTATIONS=( diff --git a/instrumentation/activej-http-6.0/metadata.yaml b/instrumentation/activej-http-6.0/metadata.yaml index d359736683f0..61aeae5824c5 100644 --- a/instrumentation/activej-http-6.0/metadata.yaml +++ b/instrumentation/activej-http-6.0/metadata.yaml @@ -1 +1 @@ -description: This instrumentation provides SERVER spans and metrics for the ActiveJ HTTP server. +description: This instrumentation enables SERVER spans and metrics for the ActiveJ HTTP server. diff --git a/instrumentation/akka/akka-http-10.0/metadata.yaml b/instrumentation/akka/akka-http-10.0/metadata.yaml new file mode 100644 index 000000000000..8f284f8dba6a --- /dev/null +++ b/instrumentation/akka/akka-http-10.0/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT and SERVER spans and metrics for the Akka HTTP client and server. diff --git a/instrumentation/apache-dbcp-2.0/metadata.yaml b/instrumentation/apache-dbcp-2.0/metadata.yaml index a7411e026fe3..b4f5c4be5557 100644 --- a/instrumentation/apache-dbcp-2.0/metadata.yaml +++ b/instrumentation/apache-dbcp-2.0/metadata.yaml @@ -1,5 +1,5 @@ description: > - This instrumentation provides database connection pools metrics for Apache DBCP. + This instrumentation enables database connection pools metrics for Apache DBCP. The instrumentation uses `MBeanRegistration` methods for lifecycle detection, therefore it only activates if the `BasicDataSource` is registered to an `MBeanServer`. If using Spring Boot, diff --git a/instrumentation/apache-httpasyncclient-4.1/metadata.yaml b/instrumentation/apache-httpasyncclient-4.1/metadata.yaml index 8a1d021ba818..eb4297e91dfb 100644 --- a/instrumentation/apache-httpasyncclient-4.1/metadata.yaml +++ b/instrumentation/apache-httpasyncclient-4.1/metadata.yaml @@ -1 +1 @@ -description: This instrumentation provides CLIENT spans and metrics for the Apache HttpAsyncClient. +description: This instrumentation enables CLIENT spans and metrics for the Apache HttpAsyncClient. diff --git a/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml index c9b610946760..8947340aaa9d 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml @@ -1 +1 @@ -description: This instrumentation provides CLIENT spans and metrics for versions 2 and 3 of the Apache HttpClient. +description: This instrumentation enables CLIENT spans and metrics for versions 2 and 3 of the Apache HttpClient. diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml index 517afd52ffaf..f38a5943cb29 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml @@ -1 +1 @@ -description: This instrumentation provides CLIENT spans and metrics for version 4 of the Apache HttpClient. +description: This instrumentation enables CLIENT spans and metrics for version 4 of the Apache HttpClient. diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/build.gradle.kts b/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/build.gradle.kts index e40db9cbcdce..40c61c776993 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/build.gradle.kts +++ b/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/build.gradle.kts @@ -23,5 +23,6 @@ tasks { test { systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) } } diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml new file mode 100644 index 000000000000..d5abba280e31 --- /dev/null +++ b/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT spans and metrics for version 5 of the Apache HttpClient. diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/build.gradle.kts b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/build.gradle.kts index f395a7dc5b4d..f77bb9d13b72 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/build.gradle.kts +++ b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/build.gradle.kts @@ -7,3 +7,10 @@ plugins { dependencies { library("org.apache.httpcomponents.client5:httpclient5:5.2.1") } + +tasks { + test { + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) + } +} diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml new file mode 100644 index 000000000000..eb4297e91dfb --- /dev/null +++ b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT spans and metrics for the Apache HttpAsyncClient. diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml new file mode 100644 index 000000000000..7ca71c47fe24 --- /dev/null +++ b/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation provides a library integration that enables CLIENT spans and metrics for the Apache HttpClient. diff --git a/instrumentation/apache-shenyu-2.4/javaagent/build.gradle.kts b/instrumentation/apache-shenyu-2.4/javaagent/build.gradle.kts index 4915bc14bd1d..571f5fb380de 100644 --- a/instrumentation/apache-shenyu-2.4/javaagent/build.gradle.kts +++ b/instrumentation/apache-shenyu-2.4/javaagent/build.gradle.kts @@ -44,6 +44,10 @@ if (latestDepTest) { tasks.withType().configureEach { jvmArgs("-Dotel.instrumentation.apache-shenyu.experimental-span-attributes=true") + systemProperty("metaDataConfig", "otel.instrumentation.apache-shenyu.experimental-span-attributes=true") + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) + // required on jdk17 jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") diff --git a/instrumentation/apache-shenyu-2.4/metadata.yaml b/instrumentation/apache-shenyu-2.4/metadata.yaml index 481207da3408..54b38ebaf92c 100644 --- a/instrumentation/apache-shenyu-2.4/metadata.yaml +++ b/instrumentation/apache-shenyu-2.4/metadata.yaml @@ -1,5 +1,11 @@ +description: > + This instrumentation does not emit telemetry on its own. Instead, it augments existing SERVER + spans and HTTP server metrics with the HTTP route and Shenyu specific attributes. configurations: - name: otel.instrumentation.apache-shenyu.experimental-span-attributes - description: Enables experimental span attributes for Apache Shenyu instrumentation. + description: > + Enables experimental `apache-shenyu.meta.` prefixed span attributes `app-name`, + `service-name`, `context-path`, `param-types`, `id`, `method-name`, `rpc-type`, `path` and + `rpc-ext`. type: boolean default: false diff --git a/instrumentation/armeria/armeria-1.3/javaagent/build.gradle.kts b/instrumentation/armeria/armeria-1.3/javaagent/build.gradle.kts index 0966fc900a7a..56c3b19b085a 100644 --- a/instrumentation/armeria/armeria-1.3/javaagent/build.gradle.kts +++ b/instrumentation/armeria/armeria-1.3/javaagent/build.gradle.kts @@ -27,5 +27,7 @@ dependencies { tasks { withType().configureEach { systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean) + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) } } diff --git a/instrumentation/armeria/armeria-1.3/metadata.yaml b/instrumentation/armeria/armeria-1.3/metadata.yaml new file mode 100644 index 000000000000..b58435f956a6 --- /dev/null +++ b/instrumentation/armeria/armeria-1.3/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT and SERVER spans and metrics for the Armeria HTTP client and server. diff --git a/instrumentation/armeria/armeria-grpc-1.14/javaagent/build.gradle.kts b/instrumentation/armeria/armeria-grpc-1.14/javaagent/build.gradle.kts index ed3b4cf44e7c..0d0e26e643f3 100644 --- a/instrumentation/armeria/armeria-grpc-1.14/javaagent/build.gradle.kts +++ b/instrumentation/armeria/armeria-grpc-1.14/javaagent/build.gradle.kts @@ -53,3 +53,8 @@ afterEvaluate { add("testCompileProtoPath", platform(project(":dependencyManagement"))) } } + +tasks.test { + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) +} diff --git a/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml b/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml new file mode 100644 index 000000000000..480139208df6 --- /dev/null +++ b/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT and SERVER spans and metrics for the Armeria gRPC client and server. diff --git a/instrumentation/async-http-client/async-http-client-1.9/javaagent/build.gradle.kts b/instrumentation/async-http-client/async-http-client-1.9/javaagent/build.gradle.kts index 47e8d3d6a87b..e63e6fab8825 100644 --- a/instrumentation/async-http-client/async-http-client-1.9/javaagent/build.gradle.kts +++ b/instrumentation/async-http-client/async-http-client-1.9/javaagent/build.gradle.kts @@ -27,5 +27,8 @@ tasks { jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean) + + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) } } diff --git a/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml b/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml new file mode 100644 index 000000000000..2badb74d86d4 --- /dev/null +++ b/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT spans and metrics for version 1 of the AsyncHttpClient (AHC) HTTP client. diff --git a/instrumentation/async-http-client/async-http-client-2.0/javaagent/build.gradle.kts b/instrumentation/async-http-client/async-http-client-2.0/javaagent/build.gradle.kts index 9c573a0fd4ec..2d00298ac42a 100644 --- a/instrumentation/async-http-client/async-http-client-2.0/javaagent/build.gradle.kts +++ b/instrumentation/async-http-client/async-http-client-2.0/javaagent/build.gradle.kts @@ -39,6 +39,9 @@ tasks.withType().configureEach { if (latestDepTest && testJavaVersion.isJava8) { enabled = false } + + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) } // async-http-client 2.0.0 does not work with Netty versions newer than this due to referencing an diff --git a/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml b/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml new file mode 100644 index 000000000000..92cff9602ef9 --- /dev/null +++ b/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation enables CLIENT spans and metrics for version 2 of the AsyncHttpClient (AHC) HTTP client. diff --git a/instrumentation/camel-2.20/metadata.yaml b/instrumentation/camel-2.20/metadata.yaml index b3e34843018f..4d9a48b100b7 100644 --- a/instrumentation/camel-2.20/metadata.yaml +++ b/instrumentation/camel-2.20/metadata.yaml @@ -1,5 +1,5 @@ description: > - This instrumentation provides tracing for Apache Camel 2.x applications by generating spans for + This instrumentation enables tracing for Apache Camel 2.x applications by generating spans for each route execution. For Camel versions 3.5 and newer, users should instead use the native 'camel-opentelemetry' component provided directly by the Camel project. configurations: diff --git a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml index 83efc09a04c2..3dc6d3cf9da4 100644 --- a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml @@ -1,2 +1,2 @@ -description: This instrumentation provides client spans for Elasticsearch API client requests for +description: This instrumentation enables client spans for Elasticsearch API client requests for version 7 of the client. Versions 8.10 and later have native support for OpenTelemetry. diff --git a/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml index 2f50a9228ffb..091cbe4861c3 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml @@ -1,8 +1,8 @@ -description: This instrumentation provides tracing for Elasticsearch REST clients. +description: This instrumentation enables tracing for Elasticsearch REST clients. configurations: - name: otel.instrumentation.elasticsearch.capture-search-query description: | Enable the capture of search query bodies. It is important to note that Elasticsearch queries may contain personal or sensitive information. type: boolean - default: false \ No newline at end of file + default: false diff --git a/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml index 42af6c77f49e..224089a16b6f 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml @@ -1,8 +1,8 @@ -description: This instrumentation provides tracing for Elasticsearch REST clients. +description: This instrumentation enables tracing for Elasticsearch REST clients. configurations: - name: otel.instrumentation.elasticsearch.capture-search-query description: > Enable the capture of search query bodies. It is important to note that Elasticsearch queries may contain personal or sensitive information. type: boolean - default: false \ No newline at end of file + default: false diff --git a/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml index 42af6c77f49e..224089a16b6f 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml @@ -1,8 +1,8 @@ -description: This instrumentation provides tracing for Elasticsearch REST clients. +description: This instrumentation enables tracing for Elasticsearch REST clients. configurations: - name: otel.instrumentation.elasticsearch.capture-search-query description: > Enable the capture of search query bodies. It is important to note that Elasticsearch queries may contain personal or sensitive information. type: boolean - default: false \ No newline at end of file + default: false diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml index 7a02d702e3ce..c327ced42d23 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml @@ -1,5 +1,5 @@ description: > - This instrumentation provides client spans for Elasticsearch transport client requests. Each call + This instrumentation enables client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. configurations: - name: otel.instrumentation.elasticsearch.experimental-span-attributes diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml index 7a02d702e3ce..c327ced42d23 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml @@ -1,5 +1,5 @@ description: > - This instrumentation provides client spans for Elasticsearch transport client requests. Each call + This instrumentation enables client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. configurations: - name: otel.instrumentation.elasticsearch.experimental-span-attributes diff --git a/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml index 7a02d702e3ce..c327ced42d23 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml @@ -1,5 +1,5 @@ description: > - This instrumentation provides client spans for Elasticsearch transport client requests. Each call + This instrumentation enables client spans for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. configurations: - name: otel.instrumentation.elasticsearch.experimental-span-attributes diff --git a/instrumentation/finagle-http-23.11/javaagent/build.gradle.kts b/instrumentation/finagle-http-23.11/javaagent/build.gradle.kts index 0d6b4fefd3ab..bf29b5e537f5 100644 --- a/instrumentation/finagle-http-23.11/javaagent/build.gradle.kts +++ b/instrumentation/finagle-http-23.11/javaagent/build.gradle.kts @@ -44,5 +44,8 @@ tasks { test { jvmArgs("-Dotel.instrumentation.http.client.emit-experimental-telemetry=true") jvmArgs("-Dotel.instrumentation.http.server.emit-experimental-telemetry=true") + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) + systemProperty("metaDataConfig", "otel.instrumentation.http.client.emit-experimental-telemetry=true,otel.instrumentation.http.server.emit-experimental-telemetry=true") } } diff --git a/instrumentation/finagle-http-23.11/metadata.yaml b/instrumentation/finagle-http-23.11/metadata.yaml new file mode 100644 index 000000000000..44f7205b4ae5 --- /dev/null +++ b/instrumentation/finagle-http-23.11/metadata.yaml @@ -0,0 +1,4 @@ +description: > + This instrumentation for Finagle HTTP clients and servers ensures that telemetry is correctly + generated by the underlying Netty instrumentation. It augments existing telemetry by bridging the + gap between Finagle's abstractions and Netty's pipeline, primarily for context propagation. diff --git a/instrumentation/finatra-2.9/javaagent/build.gradle.kts b/instrumentation/finatra-2.9/javaagent/build.gradle.kts index fa42693b732c..e6e3cd251279 100644 --- a/instrumentation/finatra-2.9/javaagent/build.gradle.kts +++ b/instrumentation/finatra-2.9/javaagent/build.gradle.kts @@ -85,6 +85,8 @@ tasks { // required on jdk17 jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") - jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true") + + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + systemProperty("collectSpans", true) } } diff --git a/instrumentation/finatra-2.9/metadata.yaml b/instrumentation/finatra-2.9/metadata.yaml new file mode 100644 index 000000000000..366d7524d9fb --- /dev/null +++ b/instrumentation/finatra-2.9/metadata.yaml @@ -0,0 +1 @@ +description: This instrumentation for the Finatra web framework augments the telemetry generated by the underlying Netty instrumentation. It provides more specific, high-level context, such as route information, to the spans generated by Netty. diff --git a/instrumentation/kafka/kafka-clients/kafka-clients-0.11/metadata.yaml b/instrumentation/kafka/kafka-clients/kafka-clients-0.11/metadata.yaml index 5da6ed1a9c89..53601136d88a 100644 --- a/instrumentation/kafka/kafka-clients/kafka-clients-0.11/metadata.yaml +++ b/instrumentation/kafka/kafka-clients/kafka-clients-0.11/metadata.yaml @@ -1,5 +1,5 @@ description: > - This instrumentation provides messaging spans and metrics for Apache Kafka 0.11 clients. + This instrumentation enables messaging spans and metrics for Apache Kafka 0.11 clients. It automatically traces message production and consumption, propagates context, and emits metrics for production and consumption. configurations: - name: otel.instrumentation.kafka.producer-propagation.enabled