diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 8c9cd18fc47e..89c78da55f65 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -8282,6 +8282,9 @@ libraries: - org.mongodb:mongodb-driver-async:[3.3,) mybatis: - name: mybatis-3.2 + display_name: MyBatis + description: This instrumentation enables spans for MyBatis mapper method executions. + library_link: https://mybatis.org/mybatis-3/ disabled_by_default: true source_path: instrumentation/mybatis-3.2 scope: @@ -8289,9 +8292,23 @@ libraries: target_versions: javaagent: - org.mybatis:mybatis:[3.2.0,) + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: code.function + type: STRING + - name: code.namespace + type: STRING nats: - name: nats-2.17 - description: This instrumentation provides messaging spans for NATS + display_name: NATS Client + description: This instrumentation enables messaging spans for NATS message producers + and consumers. + semantic_conventions: + - MESSAGING_SPANS + library_link: https://nats.io/ source_path: instrumentation/nats/nats-2.17 scope: name: io.opentelemetry.nats-2.17 @@ -8302,7 +8319,8 @@ libraries: - io.nats:jnats:2.17.2 configurations: - name: otel.instrumentation.messaging.experimental.capture-headers - description: Allows configuring headers to capture as span attributes. + description: | + Enables capturing messaging headers as span attributes. Provide a comma-separated list of header names to capture. type: list default: '' telemetry: @@ -8342,6 +8360,15 @@ libraries: type: STRING netty: - name: netty-3.8 + display_name: Netty HTTP codec + description: | + This instrumentation enables HTTP client spans, HTTP client metrics, HTTP server spans, and HTTP server metrics for the Netty framework. + semantic_conventions: + - HTTP_CLIENT_SPANS + - HTTP_CLIENT_METRICS + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS + library_link: https://netty.io/ source_path: instrumentation/netty/netty-3.8 scope: name: io.opentelemetry.netty-3.8 @@ -8349,6 +8376,47 @@ libraries: target_versions: javaagent: - io.netty:netty:[3.8.0.Final,4) + configurations: + - name: otel.instrumentation.http.known-methods + description: | + Configures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as `_OTHER`. + type: list + default: CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE + - name: otel.instrumentation.http.client.capture-request-headers + description: List of HTTP request headers to capture in HTTP client telemetry. + type: list + default: '' + - name: otel.instrumentation.http.client.capture-response-headers + description: List of HTTP response headers to capture in HTTP client telemetry. + type: list + default: '' + - name: otel.instrumentation.common.peer-service-mapping + description: Used to specify a mapping from host names or IP addresses to peer + services. + type: map + default: '' + - name: otel.instrumentation.http.client.emit-experimental-telemetry + description: | + Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.client.request.size` and `http.client.response.size` metrics. + type: boolean + default: false + - name: otel.instrumentation.http.client.experimental.redact-query-parameters + description: Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. + type: boolean + default: true + - name: otel.instrumentation.http.server.capture-request-headers + description: List of HTTP request headers to capture in HTTP server telemetry. + type: list + default: '' + - name: otel.instrumentation.http.server.capture-response-headers + description: List of HTTP response headers to capture in HTTP server telemetry. + type: list + default: '' + - name: otel.instrumentation.http.server.emit-experimental-telemetry + description: | + Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.server.request.size` and `http.server.response.size` metrics. + type: boolean + default: false telemetry: - when: default metrics: @@ -8436,6 +8504,15 @@ libraries: - name: user_agent.original type: STRING - name: netty-4.0 + display_name: Netty HTTP codec + description: | + This instrumentation enables HTTP client spans, HTTP client metrics, HTTP server spans, and HTTP server metrics for the Netty framework. + semantic_conventions: + - HTTP_CLIENT_SPANS + - HTTP_CLIENT_METRICS + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS + library_link: https://netty.io/ source_path: instrumentation/netty/netty-4.0 scope: name: io.opentelemetry.netty-4.0 @@ -8445,12 +8522,52 @@ libraries: - io.netty:netty-all:[4.0.0.Final,4.1.0.Final) - io.netty:netty-codec-http:[4.0.0.Final,4.1.0.Final) configurations: + - name: otel.instrumentation.http.known-methods + description: | + Configures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as `_OTHER`. + type: list + default: CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE + - name: otel.instrumentation.http.client.capture-request-headers + description: List of HTTP request headers to capture in HTTP client telemetry. + type: list + default: '' + - name: otel.instrumentation.http.client.capture-response-headers + description: List of HTTP response headers to capture in HTTP client telemetry. + type: list + default: '' + - name: otel.instrumentation.common.peer-service-mapping + description: Used to specify a mapping from host names or IP addresses to peer + services. + type: map + default: '' + - name: otel.instrumentation.http.client.emit-experimental-telemetry + description: | + Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.client.request.size` and `http.client.response.size` metrics. + type: boolean + default: false + - name: otel.instrumentation.http.client.experimental.redact-query-parameters + description: Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. + type: boolean + default: true + - name: otel.instrumentation.http.server.capture-request-headers + description: List of HTTP request headers to capture in HTTP server telemetry. + type: list + default: '' + - name: otel.instrumentation.http.server.capture-response-headers + description: List of HTTP response headers to capture in HTTP server telemetry. + type: list + default: '' + - name: otel.instrumentation.http.server.emit-experimental-telemetry + description: | + Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.server.request.size` and `http.server.response.size` metrics. + type: boolean + default: false - name: otel.instrumentation.netty.connection-telemetry.enabled - description: Enable the creation of Connect and DNS spans + description: Enable the creation of Connect and DNS spans. type: boolean default: false - name: otel.instrumentation.netty.ssl-telemetry.enabled - description: Enable SSL telemetry + description: Enable SSL telemetry. type: boolean default: false telemetry: @@ -8540,6 +8657,15 @@ libraries: - name: user_agent.original type: STRING - name: netty-4.1 + display_name: Netty HTTP codec + description: | + This instrumentation enables HTTP client spans, HTTP client metrics, HTTP server spans, and HTTP server metrics for the Netty framework. Does not currently support capturing HTTP/2 traffic. + semantic_conventions: + - HTTP_CLIENT_SPANS + - HTTP_CLIENT_METRICS + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS + library_link: https://netty.io/ source_path: instrumentation/netty/netty-4.1 scope: name: io.opentelemetry.netty-4.1 @@ -8551,12 +8677,52 @@ libraries: library: - io.netty:netty-codec-http:4.1.0.Final configurations: + - name: otel.instrumentation.http.known-methods + description: | + Configures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as `_OTHER`. + type: list + default: CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE + - name: otel.instrumentation.http.client.capture-request-headers + description: List of HTTP request headers to capture in HTTP client telemetry. + type: list + default: '' + - name: otel.instrumentation.http.client.capture-response-headers + description: List of HTTP response headers to capture in HTTP client telemetry. + type: list + default: '' + - name: otel.instrumentation.common.peer-service-mapping + description: Used to specify a mapping from host names or IP addresses to peer + services. + type: map + default: '' + - name: otel.instrumentation.http.client.emit-experimental-telemetry + description: | + Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.client.request.size` and `http.client.response.size` metrics. + type: boolean + default: false + - name: otel.instrumentation.http.client.experimental.redact-query-parameters + description: Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. + type: boolean + default: true + - name: otel.instrumentation.http.server.capture-request-headers + description: List of HTTP request headers to capture in HTTP server telemetry. + type: list + default: '' + - name: otel.instrumentation.http.server.capture-response-headers + description: List of HTTP response headers to capture in HTTP server telemetry. + type: list + default: '' + - name: otel.instrumentation.http.server.emit-experimental-telemetry + description: | + Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.server.request.size` and `http.server.response.size` metrics. + type: boolean + default: false - name: otel.instrumentation.netty.connection-telemetry.enabled - description: Enable the creation of Connect and DNS spans + description: Enable the creation of Connect and DNS spans. type: boolean default: false - name: otel.instrumentation.netty.ssl-telemetry.enabled - description: Enable SSL telemetry + description: Enable SSL telemetry. type: boolean default: false telemetry: diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index e464ec220c6d..18e56b883ab1 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -166,6 +166,7 @@ readonly INSTRUMENTATIONS=( "lettuce:lettuce-5.0:javaagent:testStableSemconv" "lettuce:lettuce-5.1:javaagent:test" "lettuce:lettuce-5.1:javaagent:testStableSemconv" + "mybatis-3.2:javaagent:test" "nats:nats-2.17:javaagent:test" "nats:nats-2.17:javaagent:testExperimental" "netty:netty-3.8:javaagent:test" diff --git a/instrumentation/mybatis-3.2/javaagent/build.gradle.kts b/instrumentation/mybatis-3.2/javaagent/build.gradle.kts index c7c8a098ea77..023af0dfc8fc 100644 --- a/instrumentation/mybatis-3.2/javaagent/build.gradle.kts +++ b/instrumentation/mybatis-3.2/javaagent/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { tasks.withType().configureEach { jvmArgs("-Dotel.instrumentation.mybatis.enabled=true") + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") // required on jdk17 jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") diff --git a/instrumentation/mybatis-3.2/metadata.yaml b/instrumentation/mybatis-3.2/metadata.yaml index 1aee203e711b..d7099540d92b 100644 --- a/instrumentation/mybatis-3.2/metadata.yaml +++ b/instrumentation/mybatis-3.2/metadata.yaml @@ -1 +1,4 @@ +display_name: MyBatis +description: This instrumentation enables spans for MyBatis mapper method executions. disabled_by_default: true +library_link: https://mybatis.org/mybatis-3/ diff --git a/instrumentation/nats/nats-2.17/metadata.yaml b/instrumentation/nats/nats-2.17/metadata.yaml index 1a4d1361c7ef..e400bd19d772 100644 --- a/instrumentation/nats/nats-2.17/metadata.yaml +++ b/instrumentation/nats/nats-2.17/metadata.yaml @@ -1,7 +1,12 @@ -disabled_by_default: false -description: This instrumentation provides messaging spans for NATS +display_name: NATS Client +description: This instrumentation enables messaging spans for NATS message producers and consumers. +semantic_conventions: + - MESSAGING_SPANS +library_link: https://nats.io/ configurations: - name: otel.instrumentation.messaging.experimental.capture-headers - description: Allows configuring headers to capture as span attributes. + description: > + Enables capturing messaging headers as span attributes. Provide a comma-separated list of + header names to capture. type: list default: '' diff --git a/instrumentation/netty/netty-3.8/metadata.yaml b/instrumentation/netty/netty-3.8/metadata.yaml new file mode 100644 index 000000000000..e524cb57fca6 --- /dev/null +++ b/instrumentation/netty/netty-3.8/metadata.yaml @@ -0,0 +1,55 @@ +display_name: Netty HTTP codec +description: > + This instrumentation enables HTTP client spans, HTTP client metrics, HTTP server spans, and HTTP + server metrics for the Netty framework. +semantic_conventions: + - HTTP_CLIENT_SPANS + - HTTP_CLIENT_METRICS + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS +library_link: https://netty.io/ +configurations: + - name: otel.instrumentation.http.known-methods + description: > + Configures the instrumentation to recognize an alternative set of HTTP request methods. All + other methods will be treated as `_OTHER`. + type: list + default: "CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE" + - name: otel.instrumentation.http.client.capture-request-headers + description: List of HTTP request headers to capture in HTTP client telemetry. + type: list + default: "" + - name: otel.instrumentation.http.client.capture-response-headers + description: List of HTTP response headers to capture in HTTP client telemetry. + type: list + default: "" + - name: otel.instrumentation.common.peer-service-mapping + description: Used to specify a mapping from host names or IP addresses to peer services. + type: map + default: "" + - name: otel.instrumentation.http.client.emit-experimental-telemetry + description: > + Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` + and `http.response.body.size` attributes to spans, and records `http.client.request.size` and + `http.client.response.size` metrics. + type: boolean + default: false + - name: otel.instrumentation.http.client.experimental.redact-query-parameters + description: Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. + type: boolean + default: true + - name: otel.instrumentation.http.server.capture-request-headers + description: List of HTTP request headers to capture in HTTP server telemetry. + type: list + default: "" + - name: otel.instrumentation.http.server.capture-response-headers + description: List of HTTP response headers to capture in HTTP server telemetry. + type: list + default: "" + - name: otel.instrumentation.http.server.emit-experimental-telemetry + description: > + Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` + and `http.response.body.size` attributes to spans, and records `http.server.request.size` and + `http.server.response.size` metrics. + type: boolean + default: false diff --git a/instrumentation/netty/netty-4.0/metadata.yaml b/instrumentation/netty/netty-4.0/metadata.yaml index 9afb14a1a3ea..e51cec9c8d9d 100644 --- a/instrumentation/netty/netty-4.0/metadata.yaml +++ b/instrumentation/netty/netty-4.0/metadata.yaml @@ -1,9 +1,63 @@ +display_name: Netty HTTP codec +description: > + This instrumentation enables HTTP client spans, HTTP client metrics, HTTP server spans, and HTTP + server metrics for the Netty framework. +semantic_conventions: + - HTTP_CLIENT_SPANS + - HTTP_CLIENT_METRICS + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS +library_link: https://netty.io/ configurations: - - name: otel.instrumentation.netty.connection-telemetry.enabled - description: Enable the creation of Connect and DNS spans + - name: otel.instrumentation.http.known-methods + description: > + Configures the instrumentation to recognize an alternative set of HTTP request methods. All + other methods will be treated as `_OTHER`. + type: list + default: "CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE" + - name: otel.instrumentation.http.client.capture-request-headers + description: List of HTTP request headers to capture in HTTP client telemetry. + type: list + default: "" + - name: otel.instrumentation.http.client.capture-response-headers + description: List of HTTP response headers to capture in HTTP client telemetry. + type: list + default: "" + - name: otel.instrumentation.common.peer-service-mapping + description: Used to specify a mapping from host names or IP addresses to peer services. + type: map + default: "" + - name: otel.instrumentation.http.client.emit-experimental-telemetry + description: > + Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` + and `http.response.body.size` attributes to spans, and records `http.client.request.size` and + `http.client.response.size` metrics. + type: boolean default: false + - name: otel.instrumentation.http.client.experimental.redact-query-parameters + description: Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. + type: boolean + default: true + - name: otel.instrumentation.http.server.capture-request-headers + description: List of HTTP request headers to capture in HTTP server telemetry. + type: list + default: "" + - name: otel.instrumentation.http.server.capture-response-headers + description: List of HTTP response headers to capture in HTTP server telemetry. + type: list + default: "" + - name: otel.instrumentation.http.server.emit-experimental-telemetry + description: > + Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` + and `http.response.body.size` attributes to spans, and records `http.server.request.size` and + `http.server.response.size` metrics. type: boolean - - name: otel.instrumentation.netty.ssl-telemetry.enabled - description: Enable SSL telemetry default: false + - name: otel.instrumentation.netty.connection-telemetry.enabled + description: Enable the creation of Connect and DNS spans. type: boolean + default: false + - name: otel.instrumentation.netty.ssl-telemetry.enabled + description: Enable SSL telemetry. + type: boolean + default: false diff --git a/instrumentation/netty/netty-4.1/metadata.yaml b/instrumentation/netty/netty-4.1/metadata.yaml index 9afb14a1a3ea..3061e1be4fe8 100644 --- a/instrumentation/netty/netty-4.1/metadata.yaml +++ b/instrumentation/netty/netty-4.1/metadata.yaml @@ -1,9 +1,63 @@ +display_name: Netty HTTP codec +description: > + This instrumentation enables HTTP client spans, HTTP client metrics, HTTP server spans, and HTTP + server metrics for the Netty framework. Does not currently support capturing HTTP/2 traffic. +semantic_conventions: + - HTTP_CLIENT_SPANS + - HTTP_CLIENT_METRICS + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS +library_link: https://netty.io/ configurations: - - name: otel.instrumentation.netty.connection-telemetry.enabled - description: Enable the creation of Connect and DNS spans + - name: otel.instrumentation.http.known-methods + description: > + Configures the instrumentation to recognize an alternative set of HTTP request methods. All + other methods will be treated as `_OTHER`. + type: list + default: "CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE" + - name: otel.instrumentation.http.client.capture-request-headers + description: List of HTTP request headers to capture in HTTP client telemetry. + type: list + default: "" + - name: otel.instrumentation.http.client.capture-response-headers + description: List of HTTP response headers to capture in HTTP client telemetry. + type: list + default: "" + - name: otel.instrumentation.common.peer-service-mapping + description: Used to specify a mapping from host names or IP addresses to peer services. + type: map + default: "" + - name: otel.instrumentation.http.client.emit-experimental-telemetry + description: > + Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` + and `http.response.body.size` attributes to spans, and records `http.client.request.size` and + `http.client.response.size` metrics. + type: boolean default: false + - name: otel.instrumentation.http.client.experimental.redact-query-parameters + description: Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. + type: boolean + default: true + - name: otel.instrumentation.http.server.capture-request-headers + description: List of HTTP request headers to capture in HTTP server telemetry. + type: list + default: "" + - name: otel.instrumentation.http.server.capture-response-headers + description: List of HTTP response headers to capture in HTTP server telemetry. + type: list + default: "" + - name: otel.instrumentation.http.server.emit-experimental-telemetry + description: > + Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` + and `http.response.body.size` attributes to spans, and records `http.server.request.size` and + `http.server.response.size` metrics. type: boolean - - name: otel.instrumentation.netty.ssl-telemetry.enabled - description: Enable SSL telemetry default: false + - name: otel.instrumentation.netty.connection-telemetry.enabled + description: Enable the creation of Connect and DNS spans. type: boolean + default: false + - name: otel.instrumentation.netty.ssl-telemetry.enabled + description: Enable SSL telemetry. + type: boolean + default: false