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
110 changes: 110 additions & 0 deletions docs/instrumentation-list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7229,12 +7229,122 @@ libraries:
- io.ktor:ktor-client-core:3.0.0
kubernetes:
- name: kubernetes-client-7.0
display_name: Kubernetes Client
description: This instrumentation enables HTTP client spans and HTTP client metrics
for the Kubernetes Client for Java.
semantic_conventions:
- HTTP_CLIENT_SPANS
- HTTP_CLIENT_METRICS
library_link: https://github.com/kubernetes-client/java
source_path: instrumentation/kubernetes-client-7.0
scope:
name: io.opentelemetry.kubernetes-client-7.0
schema_url: https://opentelemetry.io/schemas/1.37.0
target_versions:
javaagent:
- io.kubernetes:client-java-api:[7.0.0,)
configurations:
- name: otel.instrumentation.kubernetes-client.experimental-span-attributes
description: |
Enables experimental span attributes `kubernetes-client.namespace` and `kubernetes-client.name` for Kubernetes API requests.
type: boolean
default: false
- 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:
- 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.response.status_code
type: LONG
- name: peer.service
type: STRING
- name: server.address
type: STRING
- name: server.port
type: LONG
- name: url.full
type: STRING
- when: otel.instrumentation.kubernetes-client.experimental-span-attributes=true
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.response.status_code
type: LONG
- name: kubernetes-client.name
type: STRING
- name: kubernetes-client.namespace
type: STRING
- name: peer.service
type: STRING
- name: server.address
type: STRING
- name: server.port
type: LONG
- name: url.full
type: STRING
lettuce:
- name: lettuce-4.0
source_path: instrumentation/lettuce/lettuce-4.0
Expand Down
4 changes: 2 additions & 2 deletions docs/supported-libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ These are the supported libraries and frameworks:
| [JBoss Log Manager](https://github.com/jboss-logging/jboss-logmanager) | 1.1+ | N/A | none |
| [JDBC](https://docs.oracle.com/javase/8/docs/api/java/sql/package-summary.html) | Java 8+ | [opentelemetry-jdbc](../instrumentation/jdbc/library) | [Database Client Spans], [Database Client Metrics] [6] |
| [Jedis](https://github.com/xetorthio/jedis) | 1.4+ | N/A | [Database Client Spans], [Database Client Metrics] [6] |
| [JFinal](https://github.com/jfinal/jfinal) | 3.2+ | N/A | Provides `http.route` [2], Controller Spans [3] |
| [JFinal](https://github.com/jfinal/jfinal) | 3.2+ | N/A | Provides `http.route` [2], Controller Spans [3] |
| [JMS](https://javaee.github.io/javaee-spec/javadocs/javax/jms/package-summary.html) | 1.1+ | N/A | [Messaging Spans] |
| [Jodd Http](https://http.jodd.org/) | 4.2+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] |
| [JSP](https://javaee.github.io/javaee-spec/javadocs/javax/servlet/jsp/package-summary.html) | 2.3.x only | N/A | Controller Spans [3] |
| [Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) | 1.0+ | N/A | Context propagation |
| [Ktor](https://github.com/ktorio/ktor) | 1.0+ | [opentelemetry-ktor-1.0](../instrumentation/ktor/ktor-1.0/library),<br>[opentelemetry-ktor-2.0](../instrumentation/ktor/ktor-2.0/library),<br>[opentelemetry-ktor-3.0](../instrumentation/ktor/ktor-3.0/library) | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics] |
| [Kubernetes Client](https://github.com/kubernetes-client/java) | 7.0+ | N/A | [HTTP Client Spans] |
| [Kubernetes Client](https://github.com/kubernetes-client/java) | 7.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] |
| [Lettuce](https://github.com/lettuce-io/lettuce-core) | 4.0+ | [opentelemetry-lettuce-5.1](../instrumentation/lettuce/lettuce-5.1/library) | [Database Client Spans], [Database Client Metrics]&nbsp;[6] |
| [Log4j 1](https://logging.apache.org/log4j/1.2/) | 1.2+ | N/A | none |
| [Log4j 2](https://logging.apache.org/log4j/2.x/) | 2.11+ | [opentelemetry-log4j-appender-2.17](../instrumentation/log4j/log4j-appender-2.17/library),<br>[opentelemetry-log4j-context-data-2.17-autoconfigure](../instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure) | none |
Expand Down
2 changes: 2 additions & 0 deletions instrumentation-docs/instrumentations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@ readonly INSTRUMENTATIONS=(
"jsp-2.3:javaagent:testExperimental"
"kafka:kafka-clients:kafka-clients-2.6:library:test"
"kafka:kafka-connect-2.6:testing:test"
"kubernetes-client-7.0:javaagent:test"
"kubernetes-client-7.0:javaagent:testExperimental"
"nats:nats-2.17:javaagent:test"
"nats:nats-2.17:javaagent:testExperimental"
"netty:netty-3.8:javaagent:test"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,20 @@ tasks {
}
}

tasks.withType<Test>().configureEach {
// TODO run tests both with and without experimental span attributes
jvmArgs("-Dotel.instrumentation.kubernetes-client.experimental-span-attributes=true")
tasks {
withType<Test>().configureEach {
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

val testExperimental by registering(Test::class) {
testClassesDirs = sourceSets.test.get().output.classesDirs
classpath = sourceSets.test.get().runtimeClasspath

jvmArgs("-Dotel.instrumentation.kubernetes-client.experimental-span-attributes=true")
systemProperty("metadataConfig", "otel.instrumentation.kubernetes-client.experimental-span-attributes=true")
}

check {
dependsOn(testExperimental)
}
}
Loading