Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
185 changes: 185 additions & 0 deletions docs/instrumentation-list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6470,6 +6470,12 @@ libraries:
type: STRING
jms:
- name: jms-1.1
display_name: JMS (Java Message Service)
description: |
This instrumentation enables messaging spans for JMS (Java Message Service) message producers and consumers.
semantic_conventions:
- MESSAGING_SPANS
library_link: https://javaee.github.io/javaee-spec/javadocs/javax/jms/package-summary.html
source_path: instrumentation/jms/jms-1.1
scope:
name: io.opentelemetry.jms-1.1
Expand All @@ -6478,22 +6484,137 @@ libraries:
- javax.jms:javax.jms-api:(,)
- jakarta.jms:jakarta.jms-api:(,3)
- javax.jms:jms-api:(,)
configurations:
- name: otel.instrumentation.messaging.experimental.receive-telemetry.enabled
description: |
Enables experimental receive telemetry, which will cause consumers to start a new trace, with only a span link connecting it to the producer trace.
type: boolean
default: false
- name: otel.instrumentation.messaging.experimental.capture-headers
description: |
Enables capturing messaging headers as span attributes. Provide a comma-separated list of header names to capture.
type: list
default: ''
telemetry:
- when: default
spans:
- span_kind: CONSUMER
attributes:
- name: messaging.destination.name
type: STRING
- name: messaging.destination.temporary
type: BOOLEAN
- name: messaging.message.id
type: STRING
- name: messaging.operation
type: STRING
- name: messaging.system
type: STRING
- span_kind: PRODUCER
attributes:
- name: messaging.destination.name
type: STRING
- name: messaging.destination.temporary
type: BOOLEAN
- name: messaging.message.id
type: STRING
- name: messaging.operation
type: STRING
- name: messaging.system
type: STRING
- name: jms-3.0
display_name: JMS (Java Message Service)
description: |
This instrumentation enables messaging spans for Jakarta JMS (Java Message Service) message producers and consumers.
semantic_conventions:
- MESSAGING_SPANS
library_link: https://jakarta.ee/specifications/messaging/3.0/
source_path: instrumentation/jms/jms-3.0
minimum_java_version: 11
scope:
name: io.opentelemetry.jms-3.0
target_versions:
javaagent:
- jakarta.jms:jakarta.jms-api:[3.0.0,)
configurations:
- name: otel.instrumentation.messaging.experimental.receive-telemetry.enabled
description: |
Enables experimental receive telemetry, which will cause consumers to start a new trace, with only a span link connecting it to the producer trace.
type: boolean
default: false
- name: otel.instrumentation.messaging.experimental.capture-headers
description: |
Enables capturing messaging headers as span attributes. Provide a comma-separated list of header names to capture.
type: list
default: ''
telemetry:
- when: default
spans:
- span_kind: CONSUMER
attributes:
- name: messaging.destination.name
type: STRING
- name: messaging.message.id
type: STRING
- name: messaging.operation
type: STRING
- name: messaging.system
type: STRING
- span_kind: PRODUCER
attributes:
- name: messaging.destination.name
type: STRING
- name: messaging.destination.temporary
type: BOOLEAN
- name: messaging.message.id
type: STRING
- name: messaging.operation
type: STRING
- name: messaging.system
type: STRING
jodd:
- name: jodd-http-4.2
display_name: Jodd HTTP
description: This instrumentation enables HTTP client spans and HTTP client metrics
for Jodd HTTP.
semantic_conventions:
- HTTP_CLIENT_SPANS
- HTTP_CLIENT_METRICS
library_link: https://http.jodd.org/
source_path: instrumentation/jodd-http-4.2
scope:
name: io.opentelemetry.jodd-http-4.2
target_versions:
javaagent:
- org.jodd:jodd-http:[4.2.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.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
telemetry:
- when: default
metrics:
Expand Down Expand Up @@ -6535,6 +6656,12 @@ libraries:
type: STRING
jsf:
- name: jsf-mojarra-1.2
display_name: JSF
description: |
This instrumentation enables controller spans for Mojarra JSF action listeners (controller spans are disabled by default).
library_link: https://github.com/eclipse-ee4j/mojarra
features:
- CONTROLLER_SPANS
Copy link
Contributor

Choose a reason for hiding this comment

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

besides controller spans jsf instrumentations also update the server span name, but they don't update the route

Copy link
Member Author

Choose a reason for hiding this comment

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

i was on the fence about including that detail as a feature, but thinking more about it, i think we should. I think it's useful to know when an instrumentation might impact a server span generated by another instrumentation. I'm going to followup and add a new SERVER_SPAN_NAME feature

Copy link
Contributor

Choose a reason for hiding this comment

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

We are a bit inconsistent with this. There are some instrumentations that update just the span name and some that update the route even though the set route won't match what was actually requested (it is questionable whether such usage of route is allowed by spec). Metadata of some jaxws instrumentations also includes HTTP_ROUTE although these also just set the server span name.

Copy link
Member Author

Choose a reason for hiding this comment

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

yea, i was just doing some digging and identified cxf, metro, and axis jaxws all fall into this category. I'm going to review more

source_path: instrumentation/jsf/jsf-mojarra-1.2
scope:
name: io.opentelemetry.jsf-mojarra-1.2
Expand All @@ -6545,29 +6672,87 @@ libraries:
- com.sun.faces:jsf-impl:[2.0,2.1)
- org.glassfish:javax.faces:[2.0.7,3)
- javax.faces:jsf-impl:[1.2,2)
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes: []
- name: jsf-mojarra-3.0
display_name: JSF
description: |
This instrumentation enables controller spans for Mojarra JSF action listeners (controller spans are disabled by default).
library_link: https://github.com/eclipse-ee4j/mojarra
features:
- CONTROLLER_SPANS
source_path: instrumentation/jsf/jsf-mojarra-3.0
minimum_java_version: 11
scope:
name: io.opentelemetry.jsf-mojarra-3.0
target_versions:
javaagent:
- org.glassfish:jakarta.faces:[3,)
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes: []
- name: jsf-myfaces-1.2
display_name: JSF
description: |
This instrumentation enables controller spans for Apache MyFaces action listeners (controller spans are disabled by default).
library_link: https://myfaces.apache.org/
features:
- CONTROLLER_SPANS
source_path: instrumentation/jsf/jsf-myfaces-1.2
scope:
name: io.opentelemetry.jsf-myfaces-1.2
target_versions:
javaagent:
- org.apache.myfaces.core:myfaces-impl:[1.2,3)
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes: []
- name: jsf-myfaces-3.0
display_name: JSF
description: |
This instrumentation enables controller spans for Apache MyFaces action listeners (controller spans are disabled by default).
library_link: https://myfaces.apache.org/
features:
- CONTROLLER_SPANS
source_path: instrumentation/jsf/jsf-myfaces-3.0
minimum_java_version: 11
scope:
name: io.opentelemetry.jsf-myfaces-3.0
target_versions:
javaagent:
- org.apache.myfaces.core:myfaces-impl:[3,)
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller spans.
type: boolean
default: false
telemetry:
- when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true
spans:
- span_kind: INTERNAL
attributes: []
jsp:
- name: jsp-2.3
source_path: instrumentation/jsp-2.3
Expand Down
6 changes: 6 additions & 0 deletions instrumentation-docs/instrumentations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,12 @@ readonly INSTRUMENTATIONS=(
"jetty:jetty-12.0:javaagent:test"
"jetty-httpclient:jetty-httpclient-12.0:javaagent:test"
"jetty-httpclient:jetty-httpclient-9.2:javaagent:test"
"jms:jms-1.1:javaagent:test"
"jodd-http-4.2:javaagent:test"
"jsf:jsf-mojarra-1.2:javaagent:mojarra2Test"
"jsf:jsf-mojarra-3.0:javaagent:test"
"jsf:jsf-myfaces-1.2:javaagent:myfaces2Test"
"jsf:jsf-myfaces-3.0:javaagent:test"
"kafka:kafka-connect-2.6:testing:test"
"nats:nats-2.17:javaagent:test"
"nats:nats-2.17:javaagent:testExperimental"
Expand Down Expand Up @@ -211,6 +216,7 @@ readonly COLIMA_INSTRUMENTATIONS=(
"elasticsearch:elasticsearch-rest-5.0:javaagent:testStableSemconv"
"elasticsearch:elasticsearch-rest-6.4:javaagent:test"
"elasticsearch:elasticsearch-rest-6.4:javaagent:testStableSemconv"
"jms:jms-3.0:javaagent:test"
"oracle-ucp-11.2:javaagent:test"
"oracle-ucp-11.2:javaagent:testStableSemconv"
"spring:spring-jms:spring-jms-6.0:javaagent:test"
Expand Down
1 change: 1 addition & 0 deletions instrumentation/jms/jms-1.1/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ testing {
tasks {
withType<Test>().configureEach {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

val testReceiveSpansDisabled by registering(Test::class) {
Expand Down
20 changes: 20 additions & 0 deletions instrumentation/jms/jms-1.1/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
display_name: JMS (Java Message Service)
description: >
This instrumentation enables messaging spans for JMS (Java Message Service) message producers and
consumers.
semantic_conventions:
- MESSAGING_SPANS
library_link: https://javaee.github.io/javaee-spec/javadocs/javax/jms/package-summary.html
configurations:
- name: otel.instrumentation.messaging.experimental.receive-telemetry.enabled
description: >
Enables experimental receive telemetry, which will cause consumers to start a new trace, with
only a span link connecting it to the producer trace.
type: boolean
default: false
- name: otel.instrumentation.messaging.experimental.capture-headers
description: >
Enables capturing messaging headers as span attributes. Provide a comma-separated list of
header names to capture.
type: list
default: ''
1 change: 1 addition & 0 deletions instrumentation/jms/jms-3.0/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ otelJava {
tasks {
test {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

val testReceiveSpansDisabled by registering(Test::class) {
Expand Down
20 changes: 20 additions & 0 deletions instrumentation/jms/jms-3.0/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
display_name: JMS (Java Message Service)
description: >
This instrumentation enables messaging spans for Jakarta JMS (Java Message Service) message
producers and consumers.
semantic_conventions:
- MESSAGING_SPANS
library_link: https://jakarta.ee/specifications/messaging/3.0/
configurations:
- name: otel.instrumentation.messaging.experimental.receive-telemetry.enabled
description: >
Enables experimental receive telemetry, which will cause consumers to start a new trace, with
only a span link connecting it to the producer trace.
type: boolean
default: false
- name: otel.instrumentation.messaging.experimental.capture-headers
description: >
Enables capturing messaging headers as span attributes. Provide a comma-separated list of
header names to capture.
type: list
default: ''
36 changes: 36 additions & 0 deletions instrumentation/jodd-http-4.2/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
display_name: Jodd HTTP
description: This instrumentation enables HTTP client spans and HTTP client metrics for Jodd HTTP.
semantic_conventions:
- HTTP_CLIENT_SPANS
- HTTP_CLIENT_METRICS
library_link: https://http.jodd.org/
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
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,6 @@ tasks {
}
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/jsf/jsf-mojarra-1.2/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
display_name: JSF
description: >
This instrumentation enables controller spans for Mojarra JSF action listeners (controller spans
are disabled by default).
features:
- CONTROLLER_SPANS
library_link: https://github.com/eclipse-ee4j/mojarra
configurations:
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
description: Enables the creation of experimental controller spans.
type: boolean
default: false
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,7 @@ 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")
}
}
Loading
Loading