diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 5d389140daf9..7147128d29f8 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -3760,6 +3760,93 @@ libraries: type: STRING - name: rpc.system type: STRING + helidon: + - name: helidon-4.3 + description: This instrumentation enables HTTP server spans and HTTP server metrics + for the Helidon HTTP server. + semantic_conventions: + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS + library_link: https://helidon.io/ + features: + - HTTP_ROUTE + source_path: instrumentation/helidon-4.3 + minimum_java_version: 21 + scope: + name: io.opentelemetry.helidon-4.3 + target_versions: + javaagent: + - io.helidon.webserver:helidon-webserver:[4.3.0,) + library: + - io.helidon.webserver:helidon-webserver:4.3.0 + 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.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: + - 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: 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 hibernate: - name: hibernate-3.3 description: | diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index 5345d4164e00..bf3fedc6a3e1 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -86,6 +86,7 @@ readonly INSTRUMENTATIONS=( "grpc-1.6:javaagent:test" "grpc-1.6:javaagent:testExperimental" "gwt-2.0:javaagent:test" + "helidon-4.3:javaagent:test" "hibernate:hibernate-3.3:javaagent:test" "hibernate:hibernate-3.3:javaagent:testExperimental" "hibernate:hibernate-4.0:javaagent:test" diff --git a/instrumentation/helidon-4.3/javaagent/build.gradle.kts b/instrumentation/helidon-4.3/javaagent/build.gradle.kts index 6ffe73c6c849..fc14f8b188c9 100644 --- a/instrumentation/helidon-4.3/javaagent/build.gradle.kts +++ b/instrumentation/helidon-4.3/javaagent/build.gradle.kts @@ -20,3 +20,7 @@ dependencies { implementation(project(":instrumentation:helidon-4.3:library")) testImplementation(project(":instrumentation:helidon-4.3:testing")) } + +tasks.test { + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") +} diff --git a/instrumentation/helidon-4.3/metadata.yaml b/instrumentation/helidon-4.3/metadata.yaml index 5e8ff68ef74a..2176c83b2366 100644 --- a/instrumentation/helidon-4.3/metadata.yaml +++ b/instrumentation/helidon-4.3/metadata.yaml @@ -1,5 +1,10 @@ description: This instrumentation enables HTTP server spans and HTTP server metrics for the Helidon HTTP server. library_link: https://helidon.io/ +semantic_conventions: + - HTTP_SERVER_SPANS + - HTTP_SERVER_METRICS +features: + - HTTP_ROUTE configurations: - name: otel.instrumentation.http.known-methods description: > @@ -15,14 +20,10 @@ configurations: description: List of HTTP response headers to capture in HTTP server 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.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.body.size` - and `http.server.response.body.size` metrics. + 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 + default: false \ No newline at end of file