Skip to content

Commit bc8921e

Browse files
jaydelucamznet
authored andcommitted
Metadata for the JAX-RS family (open-telemetry#14669)
1 parent 2c8105f commit bc8921e

File tree

36 files changed

+564
-29
lines changed

36 files changed

+564
-29
lines changed

docs/instrumentation-list.yaml

Lines changed: 254 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4251,75 +4251,328 @@ libraries:
42514251
- io.javalin:javalin:[5.0.0,)
42524252
jaxrs:
42534253
- name: jaxrs-1.0
4254-
disabled_by_default: true
4254+
display_name: JAX-RS 1.x
4255+
description: |
4256+
This instrumentation enables spans for JAX-RS methods, and enriches existing HTTP server spans with route information.
4257+
library_link: https://javaee.github.io/javaee-spec/javadocs/javax/ws/rs/package-summary.html
42554258
source_path: instrumentation/jaxrs/jaxrs-1.0
42564259
scope:
42574260
name: io.opentelemetry.jaxrs-1.0
42584261
target_versions:
42594262
javaagent:
42604263
- javax.ws.rs:jsr311-api:[0.5,)
4264+
configurations:
4265+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4266+
description: Enables the creation of experimental controller (INTERNAL) spans.
4267+
type: boolean
4268+
default: false
4269+
telemetry:
4270+
- when: default
4271+
spans:
4272+
- span_kind: INTERNAL
4273+
attributes:
4274+
- name: code.function
4275+
type: STRING
4276+
- name: code.namespace
4277+
type: STRING
42614278
- name: jaxrs-2.0-annotations
4279+
display_name: JAX-RS 2.x
4280+
description: |
4281+
This instrumentation enables spans for JAX-RS annotated methods, and enriches existing HTTP server spans with route information.
4282+
library_link: https://javaee.github.io/javaee-spec/javadocs/javax/ws/rs/package-summary.html
42624283
source_path: instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-annotations
42634284
scope:
42644285
name: io.opentelemetry.jaxrs-2.0-annotations
42654286
target_versions:
42664287
javaagent:
42674288
- javax.ws.rs:javax.ws.rs-api:[,]
4289+
configurations:
4290+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4291+
description: Enables the creation of experimental controller (INTERNAL) spans.
4292+
type: boolean
4293+
default: false
4294+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4295+
description: Enables the experimental `jaxrs.canceled` span attribute.
4296+
type: boolean
4297+
default: false
4298+
telemetry:
4299+
- when: default
4300+
spans:
4301+
- span_kind: INTERNAL
4302+
attributes:
4303+
- name: code.function
4304+
type: STRING
4305+
- name: code.namespace
4306+
type: STRING
42684307
- name: jaxrs-2.0-cxf-3.2
4308+
display_name: Apache CXF JAX-RS 2.x
4309+
description: |
4310+
This instrumentation enables spans for JAX-RS methods when using Apache CXF, and enriches existing HTTP server spans with route information.
4311+
library_link: https://cxf.apache.org/
42694312
source_path: instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-cxf-3.2
42704313
scope:
42714314
name: io.opentelemetry.jaxrs-2.0-cxf-3.2
42724315
target_versions:
42734316
javaagent:
42744317
- org.apache.tomee:openejb-cxf-rs:(8,)
42754318
- org.apache.cxf:cxf-rt-frontend-jaxrs:[3.2,4)
4319+
configurations:
4320+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4321+
description: Enables the creation of experimental controller (INTERNAL) spans.
4322+
type: boolean
4323+
default: false
4324+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4325+
description: Enables the experimental `jaxrs.canceled` span attribute.
4326+
type: boolean
4327+
default: false
4328+
telemetry:
4329+
- when: default
4330+
spans:
4331+
- span_kind: INTERNAL
4332+
attributes:
4333+
- name: code.function
4334+
type: STRING
4335+
- name: code.namespace
4336+
type: STRING
4337+
- when: otel.instrumentation.jaxrs.experimental-span-attributes=true
4338+
spans:
4339+
- span_kind: INTERNAL
4340+
attributes:
4341+
- name: code.function
4342+
type: STRING
4343+
- name: code.namespace
4344+
type: STRING
4345+
- name: jaxrs.canceled
4346+
type: BOOLEAN
42764347
- name: jaxrs-2.0-jersey-2.0
4348+
display_name: Eclipse Jersey JAX-RS 2.x
4349+
description: |
4350+
This instrumentation enables spans for JAX-RS methods when using Jersey, and enriches existing HTTP server spans with route information.
4351+
library_link: https://eclipse-ee4j.github.io/jersey/
42774352
source_path: instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0
42784353
scope:
42794354
name: io.opentelemetry.jaxrs-2.0-jersey-2.0
42804355
target_versions:
42814356
javaagent:
42824357
- org.glassfish.jersey.core:jersey-server:[2.0,3.0.0)
42834358
- org.glassfish.jersey.containers:jersey-container-servlet:[2.0,3.0.0)
4359+
configurations:
4360+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4361+
description: Enables the creation of experimental controller (INTERNAL) spans.
4362+
type: boolean
4363+
default: false
4364+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4365+
description: Enables the experimental `jaxrs.canceled` span attribute.
4366+
type: boolean
4367+
default: false
4368+
telemetry:
4369+
- when: default
4370+
spans:
4371+
- span_kind: INTERNAL
4372+
attributes:
4373+
- name: code.function
4374+
type: STRING
4375+
- name: code.namespace
4376+
type: STRING
4377+
- when: otel.instrumentation.jaxrs.experimental-span-attributes=true
4378+
spans:
4379+
- span_kind: INTERNAL
4380+
attributes:
4381+
- name: code.function
4382+
type: STRING
4383+
- name: code.namespace
4384+
type: STRING
4385+
- name: jaxrs.canceled
4386+
type: BOOLEAN
42844387
- name: jaxrs-2.0-resteasy-3.0
4388+
display_name: JBoss RESTEasy JAX-RS 2.x
4389+
description: |
4390+
This instrumentation enables spans for JAX-RS methods when using RESTEasy, and enriches existing HTTP server spans with route information.
4391+
library_link: https://resteasy.dev/
42854392
source_path: instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0
42864393
scope:
42874394
name: io.opentelemetry.jaxrs-2.0-resteasy-3.0
42884395
target_versions:
42894396
javaagent:
42904397
- org.jboss.resteasy:resteasy-jaxrs:[3.0.0.Final,3.1.0.Final)
42914398
- org.jboss.resteasy:resteasy-jaxrs:[3.5.0.Final,4)
4399+
configurations:
4400+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4401+
description: Enables the creation of experimental controller (INTERNAL) spans.
4402+
type: boolean
4403+
default: false
4404+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4405+
description: Enables the experimental `jaxrs.canceled` span attribute.
4406+
type: boolean
4407+
default: false
4408+
telemetry:
4409+
- when: default
4410+
spans:
4411+
- span_kind: INTERNAL
4412+
attributes:
4413+
- name: code.function
4414+
type: STRING
4415+
- name: code.namespace
4416+
type: STRING
4417+
- when: otel.instrumentation.jaxrs.experimental-span-attributes=true
4418+
spans:
4419+
- span_kind: INTERNAL
4420+
attributes:
4421+
- name: code.function
4422+
type: STRING
4423+
- name: code.namespace
4424+
type: STRING
4425+
- name: jaxrs.canceled
4426+
type: BOOLEAN
42924427
- name: jaxrs-2.0-resteasy-3.1
4428+
display_name: JBoss RESTEasy JAX-RS 2.x
4429+
description: |
4430+
This instrumentation enables spans for JAX-RS methods when using RESTEasy, and enriches existing HTTP server spans with route information.
4431+
library_link: https://resteasy.dev/
42934432
source_path: instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.1
42944433
scope:
42954434
name: io.opentelemetry.jaxrs-2.0-resteasy-3.1
42964435
target_versions:
42974436
javaagent:
42984437
- org.jboss.resteasy:resteasy-jaxrs:[3.1.0.Final,3.5.0.Final)
42994438
- org.jboss.resteasy:resteasy-core:[4.0.0.Final,6)
4439+
configurations:
4440+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4441+
description: Enables the creation of experimental controller (INTERNAL) spans.
4442+
type: boolean
4443+
default: false
4444+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4445+
description: Enables the experimental `jaxrs.canceled` span attribute.
4446+
type: boolean
4447+
default: false
4448+
telemetry:
4449+
- when: default
4450+
spans:
4451+
- span_kind: INTERNAL
4452+
attributes:
4453+
- name: code.function
4454+
type: STRING
4455+
- name: code.namespace
4456+
type: STRING
4457+
- when: otel.instrumentation.jaxrs.experimental-span-attributes=true
4458+
spans:
4459+
- span_kind: INTERNAL
4460+
attributes:
4461+
- name: code.function
4462+
type: STRING
4463+
- name: code.namespace
4464+
type: STRING
4465+
- name: jaxrs.canceled
4466+
type: BOOLEAN
43004467
- name: jaxrs-3.0-annotations
4468+
display_name: JAX-RS 3.x
4469+
description: |
4470+
This instrumentation enables spans for JAX-RS annotated methods, and enriches existing HTTP server spans with route information.
4471+
library_link: https://jakarta.ee/specifications/restful-ws/3.0/
43014472
source_path: instrumentation/jaxrs/jaxrs-3.0/jaxrs-3.0-annotations
43024473
scope:
43034474
name: io.opentelemetry.jaxrs-3.0-annotations
43044475
target_versions:
43054476
javaagent:
43064477
- jakarta.ws.rs:jakarta.ws.rs-api:[3.0.0,)
4478+
configurations:
4479+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4480+
description: Enables the creation of experimental controller (INTERNAL) spans.
4481+
type: boolean
4482+
default: false
4483+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4484+
description: Enables the experimental `jaxrs.canceled` span attribute.
4485+
type: boolean
4486+
default: false
4487+
telemetry:
4488+
- when: default
4489+
spans:
4490+
- span_kind: INTERNAL
4491+
attributes:
4492+
- name: code.function
4493+
type: STRING
4494+
- name: code.namespace
4495+
type: STRING
43074496
- name: jaxrs-3.0-jersey-3.0
4497+
display_name: Eclipse Jersey JAX-RS 3.x
4498+
description: |
4499+
This instrumentation enables spans for JAX-RS methods when using Jersey, and enriches existing HTTP server spans with route information.
4500+
library_link: https://eclipse-ee4j.github.io/jersey/
43084501
source_path: instrumentation/jaxrs/jaxrs-3.0/jaxrs-3.0-jersey-3.0
43094502
minimum_java_version: 11
43104503
scope:
43114504
name: io.opentelemetry.jaxrs-3.0-jersey-3.0
43124505
target_versions:
43134506
javaagent:
43144507
- org.glassfish.jersey.core:jersey-server:[3.0.0,)
4508+
configurations:
4509+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4510+
description: Enables the creation of experimental controller (INTERNAL) spans.
4511+
type: boolean
4512+
default: false
4513+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4514+
description: Enables the experimental `jaxrs.canceled` span attribute.
4515+
type: boolean
4516+
default: false
4517+
telemetry:
4518+
- when: default
4519+
spans:
4520+
- span_kind: INTERNAL
4521+
attributes:
4522+
- name: code.function
4523+
type: STRING
4524+
- name: code.namespace
4525+
type: STRING
4526+
- when: otel.instrumentation.jaxrs.experimental-span-attributes=true
4527+
spans:
4528+
- span_kind: INTERNAL
4529+
attributes:
4530+
- name: code.function
4531+
type: STRING
4532+
- name: code.namespace
4533+
type: STRING
4534+
- name: jaxrs.canceled
4535+
type: BOOLEAN
43154536
- name: jaxrs-3.0-resteasy-6.0
4537+
display_name: JBoss RESTEasy JAX-RS 3.x
4538+
description: |
4539+
This instrumentation enables spans for JAX-RS methods when using RESTEasy, and enriches existing HTTP server spans with route information.
4540+
library_link: https://resteasy.dev/
43164541
source_path: instrumentation/jaxrs/jaxrs-3.0/jaxrs-3.0-resteasy-6.0
43174542
minimum_java_version: 11
43184543
scope:
43194544
name: io.opentelemetry.jaxrs-3.0-resteasy-6.0
43204545
target_versions:
43214546
javaagent:
43224547
- org.jboss.resteasy:resteasy-core:[6.0.0.Final,)
4548+
configurations:
4549+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
4550+
description: Enables the creation of experimental controller (INTERNAL) spans.
4551+
type: boolean
4552+
default: false
4553+
- name: otel.instrumentation.jaxrs.experimental-span-attributes
4554+
description: Enables the experimental `jaxrs.canceled` span attribute.
4555+
type: boolean
4556+
default: false
4557+
telemetry:
4558+
- when: default
4559+
spans:
4560+
- span_kind: INTERNAL
4561+
attributes:
4562+
- name: code.function
4563+
type: STRING
4564+
- name: code.namespace
4565+
type: STRING
4566+
- when: otel.instrumentation.jaxrs.experimental-span-attributes=true
4567+
spans:
4568+
- span_kind: INTERNAL
4569+
attributes:
4570+
- name: code.function
4571+
type: STRING
4572+
- name: code.namespace
4573+
type: STRING
4574+
- name: jaxrs.canceled
4575+
type: BOOLEAN
43234576
jaxws:
43244577
- name: jaxws-2.0
43254578
source_path: instrumentation/jaxws/jaxws-2.0

instrumentation-docs/instrumentations.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,21 @@ readonly INSTRUMENTATIONS=(
159159
"influxdb-2.4:javaagent:testStableSemconv"
160160
"java-http-server:javaagent:test"
161161
"failsafe-3.0:library:test"
162+
"jaxrs:jaxrs-1.0:javaagent:test"
163+
"jaxrs:jaxrs-2.0:jaxrs-2.0-annotations:javaagent:test"
164+
"jaxrs:jaxrs-2.0:jaxrs-2.0-cxf-3.2:javaagent:test"
165+
"jaxrs:jaxrs-2.0:jaxrs-2.0-cxf-3.2:javaagent:testExperimental"
166+
"jaxrs:jaxrs-2.0:jaxrs-2.0-jersey-2.0:javaagent:test"
167+
"jaxrs:jaxrs-2.0:jaxrs-2.0-jersey-2.0:javaagent:testExperimental"
168+
"jaxrs:jaxrs-2.0:jaxrs-2.0-resteasy-3.0:javaagent:test"
169+
"jaxrs:jaxrs-2.0:jaxrs-2.0-resteasy-3.0:javaagent:testExperimental"
170+
"jaxrs:jaxrs-2.0:jaxrs-2.0-resteasy-3.1:javaagent:test"
171+
"jaxrs:jaxrs-2.0:jaxrs-2.0-resteasy-3.1:javaagent:testExperimental"
172+
"jaxrs:jaxrs-3.0:jaxrs-3.0-annotations:javaagent:test"
173+
"jaxrs:jaxrs-3.0:jaxrs-3.0-jersey-3.0:javaagent:test"
174+
"jaxrs:jaxrs-3.0:jaxrs-3.0-jersey-3.0:javaagent:testExperimental"
175+
"jaxrs:jaxrs-3.0:jaxrs-3.0-resteasy-6.0:javaagent:test"
176+
"jaxrs:jaxrs-3.0:jaxrs-3.0-resteasy-6.0:javaagent:testExperimental"
162177
)
163178

164179
# Some instrumentation test suites don't run ARM, so we use colima to run them in an x86_64

instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/parsers/TelemetryParser.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,17 @@ class TelemetryParser {
1919
"io.opentelemetry.couchbase-2.6", Set.of("io.opentelemetry.couchbase-2.0"),
2020
// elasticsearch-rest-7.0 extends elasticsearch-api-client-7.16 with more attributes.
2121
"io.opentelemetry.elasticsearch-api-client-7.16",
22-
Set.of("io.opentelemetry.elasticsearch-rest-7.0"));
22+
Set.of("io.opentelemetry.elasticsearch-rest-7.0"),
23+
// jaxrs instrumentations add attributes to the jaxrs-2.0-annotations scope.
24+
"io.opentelemetry.jaxrs-2.0-cxf-3.2", Set.of("io.opentelemetry.jaxrs-2.0-annotations"),
25+
"io.opentelemetry.jaxrs-2.0-jersey-2.0", Set.of("io.opentelemetry.jaxrs-2.0-annotations"),
26+
"io.opentelemetry.jaxrs-2.0-resteasy-3.0",
27+
Set.of("io.opentelemetry.jaxrs-2.0-annotations"),
28+
"io.opentelemetry.jaxrs-2.0-resteasy-3.1",
29+
Set.of("io.opentelemetry.jaxrs-2.0-annotations"),
30+
"io.opentelemetry.jaxrs-3.0-jersey-3.0", Set.of("io.opentelemetry.jaxrs-3.0-annotations"),
31+
"io.opentelemetry.jaxrs-3.0-resteasy-6.0",
32+
Set.of("io.opentelemetry.jaxrs-3.0-annotations"));
2333

2434
/**
2535
* Checks if the given telemetry scope is valid for the specified module scope.

instrumentation/jaxrs/jaxrs-1.0/javaagent/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,6 @@ tasks.withType<Test>().configureEach {
3535
// required on jdk17
3636
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
3737
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
38+
39+
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
3840
}
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1-
disabled_by_default: true
1+
display_name: JAX-RS 1.x
2+
description: >
3+
This instrumentation enables spans for JAX-RS methods, and enriches existing HTTP server spans
4+
with route information.
5+
library_link: https://javaee.github.io/javaee-spec/javadocs/javax/ws/rs/package-summary.html
6+
configurations:
7+
- name: otel.instrumentation.common.experimental.controller-telemetry.enabled
8+
description: Enables the creation of experimental controller (INTERNAL) spans.
9+
type: boolean
10+
default: false

instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-annotations/javaagent/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,7 @@ dependencies {
2828
tasks {
2929
withType<Test>().configureEach {
3030
jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true")
31+
32+
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
3133
}
3234
}

0 commit comments

Comments
 (0)