Skip to content

Commit 9d08717

Browse files
authored
Merge branch 'main' into indy-finatra
2 parents d759e77 + 82bf0cd commit 9d08717

File tree

8 files changed

+131
-9
lines changed

8 files changed

+131
-9
lines changed

.github/workflows/release.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ jobs:
2121
release:
2222
permissions:
2323
contents: write # for creating the release
24+
id-token: write # for signing artifacts with Sigstore
25+
attestations: write # for uploading attestations
2426
runs-on: ubuntu-latest
2527
needs:
2628
- common
@@ -170,13 +172,22 @@ jobs:
170172
.github/scripts/generate-release-contributors.sh v$PRIOR_VERSION >> /tmp/release-notes.txt
171173
fi
172174
175+
- name: Simplify paths for attaching
176+
run: |
177+
cp javaagent/build/libs/opentelemetry-javaagent-${VERSION}.jar opentelemetry-javaagent.jar
178+
cp javaagent/build/libs/opentelemetry-javaagent-${VERSION}.jar.asc opentelemetry-javaagent.jar.asc
179+
180+
- uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
181+
with:
182+
subject-path: |
183+
opentelemetry-javaagent.jar
184+
opentelemetry-java-instrumentation-SBOM.zip
185+
173186
- id: create-github-release
174187
name: Create GitHub release
175188
env:
176189
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
177190
run: |
178-
cp javaagent/build/libs/opentelemetry-javaagent-${VERSION}.jar opentelemetry-javaagent.jar
179-
cp javaagent/build/libs/opentelemetry-javaagent-${VERSION}.jar.asc opentelemetry-javaagent.jar.asc
180191
gh release create --target $GITHUB_REF_NAME \
181192
--title "Version $VERSION" \
182193
--notes-file /tmp/release-notes.txt \

CHANGELOG.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,103 @@
22

33
## Unreleased
44

5+
## ⚠️ Breaking Changes
6+
7+
- Hadoop JMX metrics have been renamed to align with semantic conventions.
8+
If you are using Hadoop JMX metrics, you will need to update your dashboards and alerts.
9+
([#14411](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14411))
10+
- Lettuce 5.1 instrumentation now aligns with other instrumentations and no longer sets the
11+
span status description.
12+
([#14886](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14886))
13+
14+
## 🚫 Deprecations
15+
16+
- The following Logback appender configuration properties have been renamed for clarity.
17+
The old property names have been deprecated and will be removed in a future release:
18+
- Java agent: `otel.instrumentation.logback-appender.experimental.capture-logstash-attributes`
19+
`otel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes`
20+
- Spring Boot starter`otel.instrumentation.logback-appender.experimental.capture-logstash-markers`
21+
`otel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes`
22+
- Logback appender configuration property: `captureLogstashAttributes``captureLogstashMarkerAttributes`
23+
- Logback appender API: `setCaptureLogstashAttributes()``setCaptureLogstashMarkerAttributes()`
24+
([#14959](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14959))
25+
26+
### 🌟 New javaagent instrumentation
27+
28+
- Add Helidon instrumentation
29+
([#13776](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13776))
30+
- Add NATS instrumentation
31+
([#13999](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13999))
32+
- OpenSearch Transport v3.0 Implementation
33+
([#14823](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14823))
34+
- Add Kafka Connect API instrumentation
35+
([#14478](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14478))
36+
37+
### 🌟 New library instrumentation
38+
39+
- Add Helidon Instrumentation
40+
([#13776](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13776))
41+
- Add NATS instrumentation
42+
([#13999](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13999))
43+
- [Failsafe](https://failsafe.dev/) 3.0 instrumentation introduced
44+
([#14057](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14057))
45+
46+
### 📈 Enhancements
47+
48+
- Add experimental sqlcommenter support for JDBC and R2DBC
49+
([#13714](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13714))
50+
- Align Hadoop JMX metrics with semantic conventions
51+
([#14411](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14411))
52+
- Introduce experimental API for operation attributes to be passed only to OperationListeners
53+
([#14590](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14590))
54+
- Add span logging support for declarative configuration
55+
([#14591](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14591))
56+
- Add span logging support for Spring Boot starter
57+
([#14594](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14594))
58+
- Support capturing event names in logback, log4j, and jboss-logmanager appenders
59+
([#14649](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14649))
60+
- Include contrib sampler in java agent, e.g. for filtering health check endpoints
61+
([#14677](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14677))
62+
- Collect RPC metrics in Apache Dubbo instrumentation
63+
([#14690](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14690))
64+
- Add experimental option to disable noisy `redis.encode` span events in Lettuce instrumentation
65+
([#14750](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14750))
66+
- Support ListIterator in Kafka consumer instrumentation for Spark Structured Streaming
67+
([#14757](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14757))
68+
- Exclude wrapper classes in JDBC instrumentation
69+
([#14760](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14760))
70+
- Support JDBC URL parsing for OceanBase, PolarDB, and Lindorm databases
71+
([#14790](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14790))
72+
- Support context propagation in Guava AsyncEventBus
73+
([#14791](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14791))
74+
- Make `db.statement` attribute available during sampling in Lettuce instrumentation
75+
([#14856](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14856))
76+
- Add `code.namespace` and `code.function` attributes to Vaadin controller spans
77+
([#14882](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14882))
78+
- Add `code.namespace` and `code.function` attributes to Grails controller spans
79+
([#14885](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14885))
80+
- Support Hibernate 7.2.0.CR1
81+
([#14921](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14921))
82+
- Support capturing Logstash StructuredArguments as log record attributes
83+
([#14959](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14959))
84+
- Add gRPC request/response size metrics
85+
([#14342](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14342))
86+
87+
### 🛠️ Bug fixes
88+
89+
- Fix datasource instrumentation to support connection pools like Druid
90+
([#14602](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14602))
91+
- Fix Java HTTP client instrumentation to properly propagate request cancellation
92+
([#14747](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14747))
93+
- Fix Reactor Netty HTTP client instrumentation to handle IllegalStateException
94+
([#14778](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14778))
95+
- Fix executor context propagation when a stateless lambda instance is passed multiple times
96+
([#14841](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14841))
97+
- Remove span status description from Lettuce 5.1 instrumentation
98+
([#14886](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14886))
99+
- Fix Spring Boot autoconfiguration ordering for micrometer bridge
100+
([#15011](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15011))
101+
5102
## Version 2.20.1 (2025-09-22)
6103

7104
### 🛠️ Bug fixes

RELEASING.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ and deadlocks.
6565
- Run the [Release workflow](https://github.com/open-telemetry/opentelemetry-java-instrumentation/actions/workflows/release.yml).
6666
- Press the "Run workflow" button, then select the release branch from the dropdown list,
6767
e.g. `release/v1.9.x`, and click the "Run workflow" button below that.
68-
- This workflow will publish the artifacts to maven central and will publish a GitHub release
69-
with release notes based on the change log and with the javaagent jar attached.
68+
- This workflow will:
69+
- Publish the artifacts to Maven Central
70+
- Generate [GitHub Artifact Attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) for the Java agent jar and SBOM bundle
71+
- Publish a GitHub release with release notes, Java agent jar, and SBOM bundle
7072
- Review and merge the pull request that it creates for updating the apidiff baseline version
7173
to the newly released version (note that this pull request won't be made until after the release
7274
is available in maven central).

smoke-tests/images/security-manager/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ java {
2828
val repo = System.getenv("GITHUB_REPOSITORY") ?: "open-telemetry/opentelemetry-java-instrumentation"
2929

3030
jib {
31-
from.image = "openjdk:$targetJDK"
31+
from.image = "eclipse-temurin:$targetJDK"
3232
to.image = "ghcr.io/$repo/smoke-test-security-manager:jdk$targetJDK-$tag"
3333
container.mainClass = "io.opentelemetry.smoketest.securitymanager.Main"
3434
container.jvmFlags = listOf("-Djava.security.manager", "-Djava.security.policy=/app/resources/security.policy")

smoke-tests/images/spring-boot/build.gradle.kts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ java {
3737
if (targetJDK == "8") {
3838
sourceCompatibility = JavaVersion.VERSION_1_8
3939
targetCompatibility = JavaVersion.VERSION_1_8
40+
} else if (targetJDK == "11") {
41+
sourceCompatibility = JavaVersion.VERSION_11
42+
targetCompatibility = JavaVersion.VERSION_11
43+
} else if (targetJDK == "17") {
44+
sourceCompatibility = JavaVersion.VERSION_17
45+
targetCompatibility = JavaVersion.VERSION_17
4046
}
4147
}
4248

@@ -51,7 +57,7 @@ springBoot {
5157
val repo = System.getenv("GITHUB_REPOSITORY") ?: "open-telemetry/opentelemetry-java-instrumentation"
5258

5359
jib {
54-
from.image = "openjdk:$targetJDK"
60+
from.image = "eclipse-temurin:$targetJDK"
5561
to.image = "ghcr.io/$repo/smoke-test-spring-boot:jdk$targetJDK-$tag"
5662
container.ports = listOf("8080")
5763
}

smoke-tests/src/test/java/io/opentelemetry/smoketest/PrometheusSmokeTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ protected void configure(SmokeTestOptions<Integer> options) {
2727
}
2828

2929
@ParameterizedTest
30-
@ValueSource(ints = {8, 11, 17, 21, 25})
30+
// restore after image update
31+
// @ValueSource(ints = {8, 11, 17, 21, 25})
32+
@ValueSource(ints = {8, 21, 25})
3133
void shouldExportMetrics(int jdk) {
3234
start(jdk);
3335
client().get("/greeting").aggregate().join();

smoke-tests/src/test/java/io/opentelemetry/smoketest/SecurityManagerSmokeTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ protected void configure(SmokeTestOptions<Integer> options) {
2424
}
2525

2626
@ParameterizedTest
27-
@ValueSource(ints = {8, 11, 17, 21}) // Security Manager removed in Java 25
27+
// restore after image update
28+
// @ValueSource(ints = {8, 11, 17, 21}) // Security Manager removed in Java 25
29+
@ValueSource(ints = {8, 21}) // Security Manager removed in Java 25
2830
void securityManagerSmokeTest(int jdk) {
2931
start(jdk);
3032
testing.waitAndAssertTraces(

smoke-tests/src/test/java/io/opentelemetry/smoketest/SpringBootSmokeTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ protected void configure(SmokeTestOptions<Integer> options) {
3030
}
3131

3232
@ParameterizedTest
33-
@ValueSource(ints = {8, 11, 17, 21, 25})
33+
// restore after image update
34+
// @ValueSource(ints = {8, 11, 17, 21, 25})
35+
@ValueSource(ints = {8, 21, 25})
3436
void springBootSmokeTest(int jdk) {
3537
SmokeTestOutput output = start(jdk);
3638

0 commit comments

Comments
 (0)