Skip to content

Conversation

@elastic-observability-automation
Copy link
Contributor

@elastic/apm-agent-java, can you please check and merge this PR?


Upgrade the upstream agent version and related transitive dependencies

Update upstream OpenTelemetry agent version and related dependencies

ran shell command "gradle/update-upstream.sh v2.22.0 && echo \"Update successful\""

v2.22.0
This release targets the OpenTelemetry SDK 1.56.0.

Note that many artifacts have the `-alpha` suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the [VERSIONING.md](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/VERSIONING.md#opentelemetry-java-instrumentation-versioning) for more details.

 ### ⚠️ Breaking Changes

- AWS SDK 2.x attributes updated to align with semantic conventions ([#15028](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15028))  - The following attributes have been renamed:  - `aws.bucket.name` (S3) → `aws.s3.bucket`  - `aws.queue.url` (SQS) → `aws.sqs.queue.url`  - `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name`  - `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names`  - `aws.dynamodb.provisioned_throughput.read_capacity_units` → `aws.dynamodb.provisioned_read_capacity` (type changed from long to double)  - `aws.dynamodb.provisioned_throughput.write_capacity_units` → `aws.dynamodb.provisioned_write_capacity` (type changed from long to double)  - `aws.dynamodb.exclusive_start_table_name` → `aws.dynamodb.exclusive_start_table`  - `aws.dynamodb.projection_expression` → `aws.dynamodb.projection`  - `aws.dynamodb.scan_index_forward` → `aws.dynamodb.scan_forward`  - The following attribute types have changed:  - `aws.dynamodb.table_names`: string → string[]  - `aws.dynamodb.consumed_capacity`: string → string[]  - `aws.dynamodb.global_secondary_indexes`: string → string[]  - `aws.dynamodb.local_secondary_indexes`: string → string[]  - `aws.dynamodb.consistent_read`: string → boolean  - `aws.dynamodb.table_count`: string → long  - `aws.dynamodb.limit`: string → long  - `aws.dynamodb.attributes_to_get`: string → string[]  - `aws.dynamodb.segment`: string → long  - `aws.dynamodb.total_segments`: string → long  - `aws.dynamodb.count`: string → long  - `aws.dynamodb.scanned_count`: string → long  - The following attributes are no longer emitted by default but can be enabled with `otel.instrumentation.aws-sdk.experimental-span-attributes=true`:  - `aws.queue.name` (SQS)  - `aws.lambda.function.name` (Lambda)  - `aws.lambda.function.arn` (Lambda)
- JDBC library data source instrumentation now disabled by default ([#15074](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15074))
- JMX state metrics unit changed from empty string to `1` to align with semantic conventions ([#15093](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15093))
- AWS SDK 1.x attributes updated to align with semantic conventions ([#15094](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15094))  - Only affects users with `otel.instrumentation.aws-sdk.experimental-span-attributes=true`  - The following attributes have been renamed and are now emitted by default (no experimental flag required):  - `aws.bucket.name` (S3) → `aws.s3.bucket`  - `aws.queue.url` (SQS) → `aws.sqs.queue.url`  - `aws.stream.name` (Kinesis) → `aws.kinesis.stream_name`  - `aws.table.name` (DynamoDB) → `aws.dynamodb.table_names`
- Finatra controller spans now disabled by default to match other controller spans ([#15118](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15118))
- Netty HTTP request wrapper class renamed from HttpRequestAndChannel to NettyRequest ([#15247](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15247))
- JSP compile spans now disabled by default to match other view spans ([#15261](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15261))

### 🚫 Deprecations

- TracingConsumerInterceptor and TracingProducerInterceptor deprecated in favor of new configurable interceptors ([#14929](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14929))
- Various builder methods updated to use UnaryOperator<X> instead of Function<X, X> ([#15101](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15101))
- DbClientCommonAttributesGetter deprecated in favor of DbClientAttributesGetter ([#15139](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15139))

### 🌟 New javaagent instrumentation

- Add JFinal instrumentation ([#15216](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15216))

### 📈 Enhancements

- Avoid Unsafe usage on Java 23+ ([#14855](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14855), [#15091](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15091))
- Update Azure SDK instrumentation so `az.namespace` can be used for sampling ([#15068](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15068))
- Spring Boot Starter: Add cache to reduce environment variable lookups ([#15132](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15132))
- HTTP instrumentations now emit semantic convention schema URL ([#15144](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15144))
- Added instrumentation support for AsyncHttpClient version 1.8 ([#15195](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15195))
- Instrumenter customizer now receives instrumentation type ([#15227](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15227))
- Added support for Spring Framework 7.0 ([#15287](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15287), [#15299](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15299), [#15301](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15301), [#15304](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15304), [#15311](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15311), [#15362](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15362), [#15371](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15371))
- Added span status customizer to incubating InstrumenterCustomizer API ([#15288](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15288))
- Added configuration options for sqlcommenter ([#15169](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15169))
- GraphQL instrumentation now records data fetcher errors ([#15289](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15289))
- Add http client url template customizer ([#15217](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15217))
- Introduce idiomatic `JmxTelemetry` API for JMX metrics library ([#15220](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15220))
- Add instrumentation for OpenTelemetry API incubator's `ExtendedOpenTelemetry` ([#15178](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15178))

### 🛠️ Bug fixes

- Fix missing `peer.service` in Netty HTTP spans ([#14963](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14963))
- Fix Couchbase span kind to be `CLIENT` instead of `INTERNAL` ([#14995](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/14995))
- Link attributes are now bridged to the Java agent when using OpenTelemetry API ([#15143](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15143))
- Potential race condition in JFR runtime metrics initialization fixed ([#15231](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15231))
- Regression fixed related to context propagation when using Spring `@EnableAsync` ([#15249](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15249))
- Declarative configuration now uses snake_case for distro resource provider attribute name ([#15260](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15260))
- Logback appender fixed to capture Logstash `StructuredArguments.entries()` ([#15341](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15341))
- Fix context propagation in Spring WebFlux 7.0 client reactive callbacks ([#15336](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/15336))

### 🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@bioplasticlining
@breedx-splk
@brunobat
@copilot-pull-request-reviewer
@defields923
@dixanms
@jack-berg
@jaydeluca
@jeanbisutti
@JonasKunz
@kasiditi
@koksay
@Kresshy
@laurit
@LikeTheSalad
@lukaszgryglicki
@mateuszrzeszutek
@mlbiscoc
@mznet
@PaarthB
@pepeshore
@roberttoyonaga
@robsunday
@steverao
@SylvainJuge
@tharsanrp
@trask
@vasireddy99
@wyctxwd1
@zeitlinger
GitHub Action workflow link
Updatecli logo

Created automatically by Updatecli

Options:

Most of Updatecli configuration is done via its manifest(s).

  • If you close this pull request, Updatecli will automatically reopen it, the next time it runs.
  • If you close this pull request and delete the base branch, Updatecli will automatically recreate it, erasing all previous commits made.

Feel free to report any issues at github.com/updatecli/updatecli.
If you find this tool useful, do not hesitate to star our GitHub repository as a sign of appreciation, and/or to tell us directly on our chat!

@elastic-observability-automation elastic-observability-automation bot requested a review from a team as a code owner December 3, 2025 06:03
@elastic-observability-automation elastic-observability-automation bot added the dependencies Pull requests that update a dependency file label Dec 3, 2025
@jackshirazi
Copy link
Contributor

closes #889
@SylvainJuge this one finally both avoids the error and retains the same logging and logging capability including dynamic logging. finally!

jackshirazi
jackshirazi previously approved these changes Dec 3, 2025
SylvainJuge
SylvainJuge previously approved these changes Dec 3, 2025
@Override
public void onStartupSuccess() {}
public void onStartupSuccess() {
Slf4jInternalLogger.initializationComplete = true;
Copy link
Member

Choose a reason for hiding this comment

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

[minor] I think it would be better too expose a setInitializationComplete() method rather than directly expose the volatile boolean, it could also ensure that it's called at most once.

Copy link
Contributor

Choose a reason for hiding this comment

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

agree. I've changed to a method. I thought about an error or guard but actually it doesn't matter if it's called more than once, the only thing to avoid is setting it back to false, which can't be done with a no-arg setter. change applied

@jackshirazi jackshirazi dismissed stale reviews from SylvainJuge and themself via 5c24e48 December 3, 2025 14:21
@jackshirazi jackshirazi merged commit 2ac7b4e into main Dec 3, 2025
16 checks passed
@jackshirazi jackshirazi deleted the updatecli_main_upgrade-upstream-agent-version branch December 3, 2025 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-java dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants