Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions docs/instrumentation-list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4608,34 +4608,115 @@ libraries:
type: BOOLEAN
jaxws:
- name: jaxws-2.0
display_name: JAX-WS
description: This instrumentation enables controller spans for JAX-WS Provider
implementations.
library_link: https://github.com/jakartaee/jax-ws-api
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does it really do context propagation?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

am i misinterpreting this?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

am i misinterpreting this?

Context propagation usually means passing the context through header between applications or inter thread context propagation where context is somehow passed from one thread to another. Perhaps storing the context and passing it to a callback could also be considered context propagation. The linked code just creates a span and activates the context that contains that span. I don't think that qualifies as context propagation. I think we need to clarify what CONTEXT_PROPAGATION means.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, this was a misunderstanding on my part. I've updated the documentation to better match the more narrow definition and removed that label from these instrumentations.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thinking more about this, i wonder if the more useful bit would be further distinguishing this in the sense of context propagation injectors (clients, producers) or extractors (servers, consumers) ?

- EXPERIMENTAL_ONLY
source_path: instrumentation/jaxws/jaxws-2.0
scope:
name: io.opentelemetry.jaxws-2.0
target_versions:
javaagent:
- javax.xml.ws:jaxws-api:[2.0,]
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the (INTERNAL). Should we expect our users to understand the different span kinds, or care about them? When we use server span then it sort of makes sense even if you don't know that we have spans of different kinds.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removing it works for me

type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes:
- name: code.function
type: STRING
- name: code.namespace
type: STRING
- name: jaxws-2.0-axis2-1.6
display_name: Apache Axis2 1.6 JAX-WS 2.x
description: |
This instrumentation enables controller spans for Apache Axis2 JAX-WS web services, and enriches HTTP server spans with route information.
library_link: https://axis.apache.org/axis2/java/core/
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
- HTTP_ROUTE
- EXPERIMENTAL_ONLY
source_path: instrumentation/jaxws/jaxws-2.0-axis2-1.6
scope:
name: io.opentelemetry.jaxws-2.0-axis2-1.6
target_versions:
javaagent:
- org.apache.axis2:axis2-jaxws:[1.6.0,)
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes: []
- name: jaxws-cxf-3.0
display_name: Apache CXF 3.x JAX-WS
description: |
This instrumentation enables controller spans for Apache CXF JAX-WS web services, and enriches HTTP server spans with route information.
library_link: https://cxf.apache.org/
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
- HTTP_ROUTE
- EXPERIMENTAL_ONLY
source_path: instrumentation/jaxws/jaxws-cxf-3.0
scope:
name: io.opentelemetry.jaxws-cxf-3.0
target_versions:
javaagent:
- org.apache.cxf:cxf-rt-frontend-jaxws:[3.0.0,)
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes: []
- name: jaxws-jws-api-1.1
display_name: JWS API
description: |
This instrumentation enables controller spans for methods annotated with the @WebService annotation from the JWS API.
library_link: https://github.com/jakartaee/jws-api
disabled_by_default: true
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
source_path: instrumentation/jaxws/jaxws-jws-api-1.1
scope:
name: io.opentelemetry.jaxws-jws-api-1.1
target_versions:
javaagent:
- javax.jws:javax.jws-api:[1.1,]
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes:
- name: code.function
type: STRING
- name: code.namespace
type: STRING
- name: jaxws-metro-2.2
source_path: instrumentation/jaxws/jaxws-metro-2.2
scope:
Expand Down
4 changes: 4 additions & 0 deletions instrumentation-docs/instrumentations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,10 @@ readonly INSTRUMENTATIONS=(
"jaxrs:jaxrs-3.0:jaxrs-3.0-jersey-3.0:javaagent:testExperimental"
"jaxrs:jaxrs-3.0:jaxrs-3.0-resteasy-6.0:javaagent:test"
"jaxrs:jaxrs-3.0:jaxrs-3.0-resteasy-6.0:javaagent:testExperimental"
"jaxws:jaxws-2.0:javaagent:test"
"jaxws:jaxws-2.0-axis2-1.6:javaagent:test"
"jaxws:jaxws-cxf-3.0:javaagent:test"
"jaxws:jaxws-jws-api-1.1:javaagent:test"
"jetty-httpclient:jetty-httpclient-12.0:javaagent:test"
"jetty-httpclient:jetty-httpclient-9.2:javaagent:test"
"jodd-http-4.2:javaagent:test"
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,54 @@ muzzle {
}
}

val axis2Version = "1.6.0"

dependencies {
bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))

library("org.apache.axis2:axis2-jaxws:1.6.0")

compileOnly(project(":muzzle"))
compileOnly("jakarta.servlet:jakarta.servlet-api:5.0.0")

testLibrary("org.apache.axis2:axis2-jaxws:$axis2Version")
testLibrary("org.apache.axis2:axis2-transport-http:$axis2Version")
testLibrary("org.apache.axis2:axis2-transport-local:$axis2Version")

testImplementation(project(":instrumentation:jaxws:jaxws-2.0-common-testing"))

testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent"))
testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent"))
testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0-axis2-1.6:javaagent"))

testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent"))

testImplementation("javax.xml.bind:jaxb-api:2.2.11")
testImplementation("com.sun.xml.bind:jaxb-core:2.2.11")
testImplementation("com.sun.xml.bind:jaxb-impl:2.2.11")

testImplementation("com.sun.xml.ws:jaxws-rt:2.2.8")
testImplementation("com.sun.xml.ws:jaxws-tools:2.2.8")

latestDepTestLibrary("org.apache.axis2:axis2-jaxws:1.+") // see jaxws-3.0-axis2-2.0-testing module
latestDepTestLibrary("org.apache.axis2:axis2-transport-http:1.+") // see jaxws-3.0-axis2-2.0-testing module
latestDepTestLibrary("org.apache.axis2:axis2-transport-local:1.+") // see jaxws-3.0-axis2-2.0-testing module
}

configurations.configureEach {
if (name.contains("test")) {
// axis has a dependency on servlet2 api, get rid of it - otherwise the servlet3 instrumentation
// will fail during tests
exclude("javax.servlet", "servlet-api")
}
}

tasks.withType<Test>().configureEach {
// 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("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}
15 changes: 15 additions & 0 deletions instrumentation/jaxws/jaxws-2.0-axis2-1.6/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
display_name: Apache Axis2 1.6 JAX-WS 2.x
description: >
This instrumentation enables controller spans for Apache Axis2 JAX-WS web services, and enriches
HTTP server spans with route information.
library_link: https://axis.apache.org/axis2/java/core/
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
- HTTP_ROUTE
- EXPERIMENTAL_ONLY
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
2 changes: 2 additions & 0 deletions instrumentation/jaxws/jaxws-2.0/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ dependencies {

tasks.withType<Test>().configureEach {
jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true")
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
systemProperty("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}
12 changes: 12 additions & 0 deletions instrumentation/jaxws/jaxws-2.0/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
display_name: JAX-WS
description: This instrumentation enables controller spans for JAX-WS Provider implementations.
library_link: https://github.com/jakartaee/jax-ws-api
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
- EXPERIMENTAL_ONLY
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,6 @@ tasks.withType<Test>().configureEach {
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("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}
15 changes: 15 additions & 0 deletions instrumentation/jaxws/jaxws-cxf-3.0/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
display_name: Apache CXF 3.x JAX-WS
description: >
This instrumentation enables controller spans for Apache CXF JAX-WS web services, and enriches
HTTP server spans with route information.
library_link: https://cxf.apache.org/
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
- HTTP_ROUTE
- EXPERIMENTAL_ONLY
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ dependencies {

tasks.withType<Test>().configureEach {
jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true")
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
systemProperty("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}
13 changes: 13 additions & 0 deletions instrumentation/jaxws/jaxws-jws-api-1.1/metadata.yaml
Original file line number Diff line number Diff line change
@@ -1 +1,14 @@
display_name: JWS API
description: >
This instrumentation enables controller spans for methods annotated with the @WebService
annotation from the JWS API.
library_link: https://github.com/jakartaee/jws-api
features:
- CONTROLLER_SPANS
- CONTEXT_PROPAGATION
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller (INTERNAL) spans.
type: boolean
default: false
disabled_by_default: true
1 change: 0 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,6 @@ include(":instrumentation:jaxrs-client:jaxrs-client-2.0-testing")
include(":instrumentation:jaxws:jaxws-2.0:javaagent")
include(":instrumentation:jaxws:jaxws-2.0-arquillian-testing")
include(":instrumentation:jaxws:jaxws-2.0-axis2-1.6:javaagent")
include(":instrumentation:jaxws:jaxws-2.0-axis2-1.6-testing")
include(":instrumentation:jaxws:jaxws-2.0-common-testing")
include(":instrumentation:jaxws:jaxws-2.0-metro-2.2-testing")
include(":instrumentation:jaxws:jaxws-2.0-tomee-testing")
Expand Down