Skip to content

Releases: open-telemetry/opentelemetry-java

Version 1.60.1

08 Mar 00:46
b1273b5

Choose a tag to compare

This is a patch release on the previous 1.60.0 release, fixing the issue(s) below.

SDK

Extensions

  • Autoconfigure: fix warning always emitted (#8157)

Version 1.60.0

06 Mar 21:25
58a5590

Choose a tag to compare

API

  • Support W3C trace context random flag (#8012)
  • Clarify that SpanBuilder.setAttribute allows null values (#8072)

Incubating

  • Implement environment variable context propagation carriers (#8074)
  • Deprecate ExtendedAttributes, ExtendedAttributeKey, ExtendedAttributeType, ExtendedAttributesBuilder (#8060)
  • Deprecate peerServiceMapping accessor from InstrumentationConfigUtil (#8088)

SDK

Traces

  • Disable warning when using TraceIdRatioBasedSampler as root sampler (#8065)
  • User-supplied attributes take precedence over exception-derived attributes (#7993)
  • Exclude META-INF/maven from traces SDK shaded dependencies (#8096)
  • Fix inverted condition in LegacySpanProcessorInstrumentation#finishSpans (#8145)

Metrics

  • Split out cumulative vs. delta storage (#8015)
  • Add metrics for PeriodicMetricReader (#8038)
  • Allow configuring min/max in histograms (#8095)
  • Remove deprecated otel.experimental.metrics.cardinality.limit property (#8124)
  • BREAKING bug fix: GlobUtil and IncludePatternMatching, used in views and declarative config matching, previously were inconsistent in case sensitivity. If a glob char (* or ?) was present, it was evaluated with case sensitivity. If no glob chars were present, it was evaluated with case insensitivity. Now, all are consistently evaluated with case sensitivity. (#8152)

Logs

  • Stabilize LogRecordBuilder.setException (#8089)
  • Clarify setTimestamp javadoc for event timestamp behavior (#8104)

Exporters

  • OTLP: Fix marshaling for empty string attributes (#8014)
  • Prometheus: Update Prometheus client to 1.5.0 (#8080)
  • OTLP: Serialize exponential histogram sum as optional double (#8107)
  • OTLP: Use KeyManagerFactory.getDefaultAlgorithm() in TlsUtil.keyManager() (#8122)
  • OTLP: Ensure proto serializer idCache is cleared when exception is thrown (#8147)

Extensions

  • Autoconfigure: Decode plus sign in resource attributes (#8059)
  • Declarative config: update to 1.0 schema (#8123)
  • Declarative config: add support for setting schema URL (#8028)
  • Declarative config: add version mismatch warning (#8069)
  • Declarative config: cache component providers in DeclarativeConfigContext (#8070)
  • Declarative config: add system property substitution (#8073)
  • Declarative config: add exporter customizers (#8081)
  • Declarative config: add support for setting internal telemetry version (#8045)
  • Deprecate View File Configuration mechanism (#8133)
  • Autoconfigure: add property to allow autoconfiguration of SDK telemetry version (#8037)
  • Jaeger remote sampler: refactor to leverage senders (#8046)
  • Declarative config: document ObjectMapper config (#8075)
  • Declarative config: Remove unchecked warning (#8090)

Project tooling

  • Add architecture test to detect usage of shared internal code (#6978)
  • Replace Xlint deprecation check with custom error-prone check (#8061)
  • Enable error-prone's UnnecessarilyFullyQualified check (#8078)
  • Small refactoring to make safety clearer (#8083)
  • Rework span record benchmark and publish results (#8031)
  • Add LogRecordBenchmark (#8106, #8117)

🙇 Thank you

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

@adrielp
@andrzejressel
@antonio-mazzini
@anuraaga
@arnav-dasgupta
@Bhagirath00
@blakeli0
@breedx-splk
@carlosalberto
@dashpole
@GerardoGR
@jack-berg
@jaydeluca
@jkwatson
@jmacd
@laurit
@lbarrios
@marcingrzejszczak
@MikeGoldsmith
@mosesn
@PeterF778
@Quaffel
@ruturajjadhav07
@trask
@wglad
@zeitlinger

Version 1.59.0

06 Feb 14:30
d01a599

Choose a tag to compare

API

  • Stabilize complex attributes (#7973)
  • Limit init valid hex array to range that can be true (#7809)

Extensions

  • Trace propagators: Deprecate OtTracePropagator (#8020)
  • Trace propagators: Deprecate JaegerPropagator (#8019)

SDK

  • Move io.opentelemetry.sdk.internal to io.opentelemetry.sdk.common.internal (#8003)
  • Always return ExtendedOpenTelemetry when incubator is available (#7991)

Traces

  • Fix memory leak in SdkSpan#spanEndingThread (#7984)

Metrics

  • Rework and publish metric benchmarks (#8000)
  • Update LongLastValueAggregator algo to avoid allocations (#8017)

Testing

  • Fix OTel JUnit5 Extension cleanup when using Nested test classes (#7999)
  • Add assertion support for Span hasException(null) (#8033)

Exporters

  • DEPRECATION: opentelemetry-exporter-zipkin is now deprecated with the last release planned for 1.65.0 (August 2026) (#7974)
  • Refactor http, grpc senders and promote to public API (#7782)

Extensions

  • Jaeger remote sampler: Remove unused code (#7970)
  • Incubator: Add AlwaysRecordSampler (#7877)

Project tooling

  • Align generate release contributors (#8023)

🙇 Thank you

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

@austince
@baolongnt
@blueswhisper
@bogdandrutu
@breedx-splk
@brunobat
@gerolf-da
@jack-berg
@jaydeluca
@jkwatson
@laurit
@majanjua-amzn
@michaeljohnalbers
@ps-mir
@trask
@tylerbenson
@zeitlinger

Version 1.58.0

09 Jan 18:14
1e377b4

Choose a tag to compare

API

Incubator

  • Delete GlobalConfigProvider in favor of access via ExtendedOpenTelemetry (#7914)
  • Add DeclarativeConfigProperties#get method (#7923)
  • Update ConfigProvider#getInstrumentationConfig response to be non-null (#7954)
  • Add declarative config utility methods for common operations (#7927)

SDK

Traces

  • Implement SDK metrics for trace (#7895, #7930)
  • Emit warning when TraceIdRatioBasedSampler is used as child sampler (#7937)

Logs

  • Implement SDK metrics for logs (#7931)

Exporters

  • Prom exporter update (#7934)

Extensions

  • Declarative config: update to opentelemetry-configuration 1.0.0-rc.3 (#7861)
  • Declarative config: update jaeger remote sampler to require endpoint, initial_sampler (#7943)
  • Declarative config: add support for view unit (#7942)
  • Declarative config: add support for new logger config minimum_severity and trace_based properties (#7940)
  • Declarative config: add support for composable parent threshold sampler (#7941)
  • Declarative config: improve pattern for validating and loading SDK extension plugins (#7947)

Project tooling

  • Use develocity build cache in PRs and local builds (#7906)
  • Configure japicmp classpath to avoid false positives (#7945)

🙇 Thank you

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

@anuraaga
@breedx-splk
@Gosling-dude
@jack-berg
@jkwatson
@JonasKunz
@SylvainJuge
@trask
@zeitlinger

Version 1.57.0

05 Dec 21:33
2c5a4f8

Choose a tag to compare

API

  • Add GlobalOpenTelemetry#getOrNoop, #isSet. Update #get to always returns obfuscated instance (#7819)

Incubating

  • Logs: Complex attributes incubating implementation (#7814)

SDK

Logs

  • Add minimum severity and trace-based logger configuration (incubating API) (#7529)

Exporters

  • OTLP: VarHandle string encoder (#7701)
  • OTLP: Fix OkHttpGrpcSender to properly await executor shutdown (#7840)
  • OTLP: avoid auto-config warning (#7881)
  • OTLP: update error message for missing GrpcSenderProvider dependency (#7884)

Extensions

  • Declarative config: add runtime hints for graal VM (#7866)
  • Declarative config: add missing warning about discarded value (#7821)

Project tooling

  • Update macos version to latest and switch to corretto for testing (#7841)
  • Sync Java worflows: Allow re-running prepare release branch workflow (#7845)
  • Simplify and standardize renovate custom managers across Java repos (#7846)
  • Remove misspell workflow (#7852)
  • Fix link checks on main (#7867)
  • Add zeitlinger as approver (#7868)
  • Move snapshot publishing to daily build (#7886)

🙇 Thank you

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

@breedx-splk
@HarshMehta112
@jack-berg
@jaydeluca
@jeanbisutti
@jkwatson
@kevinburkesegment
@laurit
@michaldo
@trask
@zeitlinger

Version 1.56.0

07 Nov 21:36
daa49ee

Choose a tag to compare

API

Incubator

  • Support ExtendedOpenTelemetry in GlobalOpenTelemetry (#7799)

SDK

  • Changes to MeterConfig, LoggerConfig, TracerConfig are guaranteed to be eventually visible (#7706)

Metrics

  • Stabilize ExemplarFilter (#7768)
  • Type specific exemplar reservoirs (#7758)

Extensions

  • SDK incubator: Add incubator ComposableRuleBasedSampler (#7787)
  • SDK incubator: Add incubator ComposableAnnotatingSampler (#7804)
  • SDK incubator: Rename ComposableTraceIdRatioBased to ComposableProbability (#7786)
  • Declarative config: BREAKING Remove component provider generic type (#7606)
  • Declarative config: Add declarative config support for ExemplarFilter (#7769)
  • Declarative config: Fix a few declarative configuration bugs (#7807)

Project tooling

  • Move to oracle bare metal benchmark runner (#7740)
  • Enable Develocity build scans (#7776)
  • Document GPG signing key (#7783)
  • Update build to use java 21 (#7784)
  • Sync repository-settings.md documentation (#7791)
  • Fix gradle deprecation warning (#7780)
  • Small alignments of workflows across the 6 Java repos (#7806)
  • Implement min java version gradle tooling from instrumentation repo (#7801)

🙇 Thank you

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

@anuraaga
@breedx-splk
@brunobat
@jack-berg
@jkwatson
@laurit
@robsunday
@ThomasVitale
@trask
@yogurtearl
@zeitlinger

Version 1.55.0

13 Oct 18:13
f612423

Choose a tag to compare

API

Common

  • Improve GraalVM native image compatibility (#7160)

Traces

  • Fix TraceState key validation limits to match W3C specification (#7575)

Incubator

  • Add ExtendedOpenTelemetry API (#7496)
  • Add incubator implementation of composite sampling specification (#7626)

SDK

Traces

  • Proactively avoid Unsafe on Java 23+ to avoid triggering JVM warning message (#7691)

Metrics

  • Add setMeterConfigurator() support to MeterProvider (incubating API) (#7346)

Exporters

  • OTLP: Configure metric exporter to use SDK's MeterProvider for internal metrics (#7541)
  • OTLP: Suppress logging of InterruptedException from managed OkHttp threads (#7565)
  • OTLP: Update dependency from okhttp-jvm back to okhttp for Gradle users, preserving okhttp-jvm for Maven users (#7681)
  • Prometheus: Remove separate otel_scope_info metric and always add scope labels to data points (#7398)
  • Prometheus: Update exporter dependencies to use protobuf-free formats (#7664)

Profiling

  • Update profiles exporter to support proto v1.8.0-alpha changes (#7638)
  • Add abstractions to assist with dictionary table assembly (#7717)
  • Add abstractions to assist with sample composition (#7727)

Extensions

  • Autoconfigure: Improve exception logging when running in Maven (#7336)
  • Declarative configuration: Return Resource (#7639)
  • Declarative configuration: Invoke auto-configure listeners (#7654)
  • Declarative configuration: Add logging when incompatible types are found (#7693)

Shims

OpenTracing Shim

  • Improve log levels in error scenarios (#6832)

Project tooling

  • Respect testJavaVersion property when running JMH benchmarks (#7697)

🙇 Thank you

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

@50c
@anuraaga
@anuragagarwal561994
@ArthurSens
@bidetofevil
@breedx-splk
@brendenehlers
@cbruegg
@cyrille-leclerc
@ericdallo
@fandreuz
@greatvovan
@iNikem
@jack-berg
@jaydeluca
@jeanbisutti
@jhalliday
@jkwatson
@laurit
@LikeTheSalad
@maryliag
@PeterF778
@priettt
@robsunday
@trask
@vidyadharamurthy
@zeitlinger

Version 1.54.1

18 Sep 20:26
edf8896

Choose a tag to compare

This is a patch release on the previous 1.54.0 release, fixing the issue(s) below.

SDK

Exporters

  • Prometheus: Fix regression in protobuf format export (#7664)

Version 1.54.0

05 Sep 20:14
61e066b

Choose a tag to compare

API

Baggage

  • Fix guard against ArrayIndexOutOfBoundsException in BaggageCodec (#7239)

SDK

Metrics

  • Fix MetricData.getDoubleSumData() ClassCastException with custom implementations (#7597)

Exporters

  • Fix HttpExporterBuilder.copy() and GrpcExporterBuilder.copy() to preserve component loader (#7596)

Extensions

  • Autoconfigure: Remove support for old EnvironmentResourceProvider package name (#7622)
  • Declarative config: Add DeclarativeConfigurationProvider SPI (#7472)
  • Declarative config: Pass meter provider to avoid using the global OpenTelemetry instance (#7475)

Project tooling

  • Update to Gradle v9 (#7590)

🙇 Thank you

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

@anuraaga
@breedx-splk
@chengchen
@halasz-csaba
@jack-berg
@jaydeluca
@jkwatson
@laurit
@opentelemetrybot
@rlacksgus97
@robsunday
@trask
@xiangtianyu
@zeitlinger

Version 1.53.0

08 Aug 18:49
b15d4d1

Choose a tag to compare

SDK

  • File based config will log the wrong file format, when applicable. (#7498)

Exporters

  • Change okhttp dependency to okhttp-jvm, which fixes missing class failures in transitive dependencies. (#7517)

🙇 Thank you

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

@breedx-splk
@jack-berg
@jaydeluca
@jkwatson
@laurit
@steffan-westcott
@the-clam
@trask
@zeitlinger