Skip to content

Releases: open-telemetry/opentelemetry-java

Version 1.34.1

11 Jan 23:33
91c4a1b
Compare
Choose a tag to compare

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

  • Fix prometheus exporter regressions (#6138)
  • Fix native image regression (#6134)

Version 1.34.0

05 Jan 15:45
0201c61
Compare
Choose a tag to compare

NOTE: This is the LAST release for opentelemetry-exporter-jaeger and opentelemetry-exporter-jaeger-thift. Jaeger has native support for OTLP, and users should export to jaeger using OTLP instead.

API

  • Ability to access version.properties API file with GraalVM native (#6095)

SDK

Traces

  • Only call SpanProcessor onStart / onEnd if required (#6112)
  • Add option to export unsampled spans from span processors (#6057)

Metrics

  • Memory Mode: Adding first part support for synchronous instruments - storage (#5998)
  • Base2ExponentialHistogramAggregation maxBuckets must be >= 2 (#6093)
  • Convert histogram measurements to double before passing recording exemplar reservoir (#6024)

Exporters

  • Add compressor SPI to support additional compression algos (#5990)
  • Test OTLP exporters with different OkHttp versions (#6045)
  • Refactor prometheus exporter to use io.prometheus:prometheus-metrics-exporter-httpserver, add exponential Histogram support (#6015)
  • UpstreamGrpcSenderProvider uses minimal fallback managed channel when none is specified (#6110)
  • OTLP exporters propagate serialization IOException instead of rethrowing as runtime (#6082)

Extensions

  • Autoconfigure reads normalized otel.config.file property (#6105)

🙇 Thank you

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

@asafm
@axw
@fax4ever
@fstab
@HaloFour
@jack-berg
@jeanbisutti
@jkwatson
@lchdev
@nluk
@NthPortal
@patrick-me
@ricardo-mestre
@TomasChladekSL
@trask

Version 1.33.0

08 Dec 20:29
977a000
Compare
Choose a tag to compare

API

  • Fix issue where wrapping "invalid" SpanContexts in Span does not preserve SpanContext (#6044)

Incubator

  • Refactor and add to ExtendedTracer, add ExtendedContextPropagators (#6017)
  • Base64 encode AnyValue bytes in string representation (#6003)

SDK

Exporters

  • Add connectTimeout configuration option OtlpHttp{Signal}Exporters (#5941)
  • Add ability for Otlp{Protocol}LogRecordExporter to serialize log body any value (#5938)
  • Android environments can now handle base64 encoded PEM keys, remove exception handling in TlsUtil#decodePem (#6034)
  • Add header supplier configuration option to OTLP exporters (#6004)

Extensions

  • Add autoconfigure option for customizing SpanProcessor, LogRecordProcessor (#5986)
  • Incubator allows for simpler creation of start-only and end-only SpanProcessors. (#5923)

Testing

  • Add hasAttributesSatisfying overload to AbstractPointAssert (#6048)

Project Tooling

  • Building animal sniffer signatures directly from android corelib (#5973)
  • Target kotlin 1.6 in kotlin extension (#5910)
  • Define language version compatibility requirements (#5983)

🙇 Thank you

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

@anuraaga
@asafm
@breedx-splk
@chungngoops
@felixscheinost
@jack-berg
@jackshirazi
@jkwatson
@JonasKunz
@laurit
@LikeTheSalad
@mateuszrzeszutek
@mikelaspina
@PeterF778
@scheler
@SenNeonoveNoci
@shadow0wolf
@trask
@zeitlinger

Version 1.32.0

13 Nov 18:40
ff2e163
Compare
Choose a tag to compare

API

  • Stabilize explicit bucket boundaries advice API (#5897)
  • Allow events to be emitted with timestamp (#5928)

Context

  • Add null check to StrictContextStorage (#5954)

Incubator

  • Experimental support for Log AnyValue body (#5880)

SDK

Metrics

  • Dismantle AbstractInstrumentBuilder inheritance hierarchy (#5820)
  • Fix delta metric storage concurrency bug that allows for lost writes when record operations occur during collection. The fix introduces additional work on record threads to ensure correctness. The additional overhead is non-blocking and should be small according to performance testing. Still, there may be an opportunity for further optimization. (#5932, #5976)

Exporters

  • Prometheus exporter: omit empty otel_scope_info and otel_target_info metrics (#5887)
  • JdkHttpSender should retry on connect exceptions (#5867)
  • Expand the set of retryable exceptions in JdkHttpSender (#5942)
  • Identify OTLP export calls with context key used for instrumentation suppression (#5918)

Testing

  • Add log support to junit extensions (#5966)

SDK Extensions

  • Add file configuration to autoconfigure (#5831)
  • Update to file configuration to use opentelemetry-configuration v0.1.0 (#5899)
  • Add env var substitution support to file configuration (#5914)
  • Stop setting Resource schemaUrl in autoconfigure (#5911)
  • Add AutoConfigureListener to provide components with autoconfigured SDK (#5931)

OpenCensus Shim

  • Clean up OpenCensus shim (#5858)

OpenTracing Shim

  • Fix OpenTracing header name issue (#5840)

🙇 Thank you

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

@abdolsamad
@anuraaga
@asafm
@breedx-splk
@dashpole
@jack-berg
@jackshirazi
@jamesylgan
@jkwatson
@laurit
@LikeTheSalad
@mateuszrzeszutek
@mikelaspina
@nluk
@steffan-westcott
@trask

Version 1.31.0

06 Oct 20:57
c25c0a0
Compare
Choose a tag to compare

API

Incubator

  • Refactor advice API to simplify usage (#5848)

SDK

  • BatchLogRecordProcessor and BatchSpanProcessor unify queueSize metric description and attribute name for processorType (#5836)

Metrics

  • Allow instrument names to contain a forward slash (#5824)
  • Memory Mode support: Adding memory mode, and implementing it for Asynchronous Instruments (#5709, #5855)
  • Stabilize MetricProducer, allow custom MetricReaders (#5835)
  • Drop NaN measurements to metric instruments (#5859)
  • Fix flaky MetricExporterConfigurationTest (#5877)

Logs

  • Add addAllAttributes() to ReadWriteLogRecord. (#5825)

Exporters

  • Prometheus exporter: handle colliding metric attribute keys (#5717)

SDK Extensions

  • File configuration ConfigurationReader handles null values as empty (#5829)

Semantic conventions

Project Tooling

  • Add Benchmark workflows (#5842, #5874)
  • Add clearer docs around coroutine support with an example (#5799)

🙇 Thank you

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

@aabmass
@asafm
@breedx-splk
@cbos
@cmunger
@dashpole
@evantorrie
@jack-berg
@jkwatson
@laurit
@LikeTheSalad
@mateuszrzeszutek
@puckpuck
@scprek
@trask
@tylerbenson

Version 1.30.1

11 Sep 16:09
60c06db
Compare
Choose a tag to compare

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

  • Fix autoconfigure bug creating multiple PrometheusHttpServer instances with same port (#5911)

Version 1.30.0

08 Sep 16:40
48f13ca
Compare
Choose a tag to compare

API

Incubator

  • Add experimental synchronous gauge (#5506)

SDK

Metrics

  • Add attributes advice API (#5677, #5722)
  • Add AttributesProcessor toString, add attribute filter helper (#5765)
  • Increase metric name maximum length from 63 to 255 characters (#5697)

Exporter

  • Prometheus exporter: remove non-ucum units from conversion (#5719)
  • Prometheus exporter: add units to metric names in TYPE and HELP comments (#5718)

SDK Extensions

Semantic conventions

Project Tooling

  • Update Gradle Wrapper from 8.2.1 to 8.3 (#5728)
  • Remove dependabot and update-gradle-wrapper task in favor of renovate (#5746)

🙇 Thank you

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

@breedx-splk
@brunobat
@dashpole
@dependabot
@Emily-Jiang
@erenming
@jack-berg
@jkwatson
@jsuereth
@mateuszrzeszutek
@tigrannajaryan
@trask
@tylerbenson

Version 1.29.0

11 Aug 16:23
cbb4450
Compare
Choose a tag to compare

API

  • Update Span javadoc to allow null/empty attr values (#5616)

SDK

  • Add Sdk{Signal}ProviderBuilder#addResource(Resource) method to merge Resource with current (#5619)

Metrics

  • Add LongHistogramAdviceConfigurer to improve api surface types (#5689)
  • Instruments with names which are case-insensitive equal contribute to same metric, advice is not part of instrument identity. (#5701)

Exporter

  • Add OtlpHttp{Signal}Exporter#toBuilder() methods (#5652)
  • Add OtlpGrpc{Signal}Exporter#toBuilder() methods (#5680)
  • Add #toString to OTLP exporters (#5686)
  • Break out GrpcSender, GrpcSenderProvider (#5617)

SDK Extensions

  • BREAKING: Delete zpages (#5611)
  • Initialize file configuration with generated model classes and parse method (#5399)
  • Refactor SpiUtil to improve mocking (#5679)
  • Switch from snakeyaml to snakeyaml engine (#5691)
  • Add experimental autoconfigure support for customizing cardinality limit (#5659)
  • Reorganize autoconfigure docs by signal (#5665)

Testing

  • Add hasResourceSatisfying to LogRecordDataAssert (#5690)

OpenCensus Shim

  • Change OpenCensus shim default sampling to defer to OpenTelemetry (#5604)

Project Tooling

  • Update Gradle Wrapper from 8.2 to 8.2.1 (#5618)
  • Fix gradle java version requirement warning (#5624)
  • Refer to Adoptium/Temurin instead of AdoptOpenJDK (#5636)
  • Use OtelVersionClassPlugin instead of reading version from resource (#5622)
  • Enforce build-graal success in required status check (#5696)

🙇 Thank you

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

@aabmass
@akats7
@breedx-splk
@cartermp
@chalin
@jack-berg
@jkwatson
@jsuereth
@keithc-ca
@mateuszrzeszutek
@parth1601
@svrnm
@trask
@tylerbenson
@zeitlinger

Version 1.28.0

07 Jul 12:31
1733d2c
Compare
Choose a tag to compare

opentelemetry-sdk-extension-autoconfigure is now stable! See "SDK Extension" notes below for changes made prior to stabilization.

SDK

Metrics

  • Make Advice proper immutable class (#5532)
  • Show attributes when async instruments record duplicate measurements (#5542)
  • After cardinality limit exceeded record measurements to overflow series (#5560)

Exporter

  • Add HttpSender abstraction with OkHttp implementation (#5505)
  • Add HttpSenderProvider SPI (#5533)
  • Add JDK 11+ HttpClient HttpSender implementation (#5557)
  • Remove unnecessary :exporter:otlp:common dependencies (#5535)
  • Fix OTLP exporter artifact name in an error message (#5541)
  • Stabilize RetryPolicy API for OTLP exporters (#5524)
  • DEPRECATION: opentelemetry-exporter-jaeger and opentelemetry-exporter-jaeger-thrift are now deprecated with the last release planned for 1.34.0 (January 2024) (#5190)

SDK Extensions

  • Mark opentelemetry-sdk-extension-autoconfigure as stable (#5577)
  • Refactor autoconfigure registerShutdownHook(boolean) to disableShutdownHook() (#5565)
  • AutoConfiguredOpenTelemetrySdkBuilder does not set GlobalOpenTelemetry by default (#5564)
  • Add public API to autoconfigure to access environment resource (#5554)
  • Move autoconfigure getConfig to internal, remove getResource (#5467)
  • Add autoconfigure support for low memory metric temporality setting (#5558)
  • DEPRECATION: zpages extension from opentelemetry-sdk-extension-incubator is now deprecated (#5578)

Project tooling

  • Publish build scans to ge.opentelemetry.io (#5510)
  • Update Gradle Wrapper from 8.0.1 to 8.1.1 (#5531)
  • Add action to auto update gradle wrapper (#5511)

🙇 Thank you

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

@bogdandrutu
@breedx-splk
@brunobat
@damian-les
@jack-berg
@jkwatson
@jsuereth
@mateuszrzeszutek
@trask
@tylerbenson
@zeitlinger

Version 1.27.0

09 Jun 17:01
5a882c8
Compare
Choose a tag to compare

The log bridge API / SDK are now stable! Some important notes:

  • The contents of opentelemetry-api-logs have been merged into opentelemetry-api.
  • The contents of opentelemetry-exporter-otlp-logs have been merged into opentelemetry-exporter-otlp.
  • The contents of opentelemetry-sdk-logs-testing have been merged into opentelemetry-sdk-testing.
  • The opentelemetry-sdk-logs artifact has been marked stable.
  • opentelemetry-sdk-extension-autoconfigure has changed the default value of otel.logs.exporter from none to otlp.

NOTE: reminder that the Logs Bridge API is not meant for end users. Log appenders use the API to bridge logs from existing log frameworks (e.g. JUL, Log4j, SLf4J, Logback) into OpenTelemetry. Users configure the Log SDK to dictate how logs are processed and exported. See opentelemetry.io for documentation on usage.

API

  • Promote log API to stable (#5341)
  • fix doc for OpenTelemetry class (#5454)

SDK

  • Ensure correct compiled output and sources are included in multi version jar (#5487)

Logs

  • Fix broken link (#5451)
  • Add meaningful .toString to NoopLogRecordProcessor and DefaultOpenTelemetry (#5493)
  • Promote log SDK to stable (#5341)

Metrics

  • Reset exponential aggregator scale after collection (#5496)
  • Experimental metric reader and view cardinality limits (#5494)

Exporter

  • Merge otlp logs (#5432)
  • Append unit to prometheus metric names (#5400)

Testing

  • Merge sdk logs testing (#5431)
  • Add a hasBucketBoundaries() variant that allows specifying precision (#5457)

SDK Extensions

  • Enable otlp logs by default in autoconfigure (#5433)

Semantic Conventions

  • Update to semconv 1.20.0 (#5497)

🙇 Thank you

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

@alanwest
@bogdandrutu
@breedx-splk
@Emily-Jiang
@fmhwong
@iRevive
@Izzzu
@jack-berg
@jkwatson
@jsuereth
@kenfinnigan
@lu-xiaoshuang
@mateuszrzeszutek
@psx95
@the-vj
@tigrannajaryan
@trask