Releases: open-telemetry/opentelemetry-java
Version 1.31.0
API
Incubator
- Refactor advice API to simplify usage (#5848)
SDK
- BatchLogRecordProcessor and BatchSpanProcessor unify
queueSize
metric description and attribute name forprocessorType
(#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
- BREAKING: Stop publishing
io.opentelemetry:opentelemetry-semconv
. Please useio.opentelemetry.semconv:opentelemetry-semconv:1.21.0-alpha
instead, which is published from open-telemetry/semantic-conventions-java. The new repository is published in lockstep with open-telemetry/semantic-conventions. (#5807)
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
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
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
- Add support for file based configuration to incubator (#5687, #5751, #5758, #5757, #5755, #5763, #5766, #5773, #5771, #5779)
- Autoconfigure ConfigProperties#getMap filters entries with blank values instead of throwing (#5784)
Semantic conventions
- DEPRECATION:
io.opentelemetry:opentelemetry-semconv
is deprecated for removal. Please useio.opentelemetry.semconv:opentelemetry-semconv:1.21.0-alpha
instead, which is published from open-telemetry/semantic-conventions-java. The new repository is published in lockstep with open-telemetry/semantic-conventions. (#5786)
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
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
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
andopentelemetry-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
The log bridge API / SDK are now stable! Some important notes:
- The contents of
opentelemetry-api-logs
have been merged intoopentelemetry-api
. - The contents of
opentelemetry-exporter-otlp-logs
have been merged intoopentelemetry-exporter-otlp
. - The contents of
opentelemetry-sdk-logs-testing
have been merged intoopentelemetry-sdk-testing
. - The
opentelemetry-sdk-logs
artifact has been marked stable. opentelemetry-sdk-extension-autoconfigure
has changed the default value ofotel.logs.exporter
fromnone
tootlp
.
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
SDK
- Ensure correct compiled output and sources are included in multi version jar (#5487)
Logs
- Fix broken link (#5451)
- Add meaningful
.toString
toNoopLogRecordProcessor
andDefaultOpenTelemetry
(#5493) - Promote log SDK to stable (#5341)
Metrics
- Reset exponential aggregator scale after collection (#5496)
- Experimental metric reader and view cardinality limits (#5494)
Exporter
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
Version 1.26.0
This release represents the release candidate ("RC") release for the Logs Bridge API / SDK. In the next release (1.27.0), opentelemetry-api-logs
will be merged into opentelemetry-api
, opentelemetry-sdk-logs
will be marked as stable, opentelemetry-exporter-otlp-logs
will be merged into opentelemetry-exporter-otlp
, opentelemetry-sdk-logs-testing
will be merged into opentelemetry-sdk-testing
, opentelemetry-sdk-extension-autoconfigure
will enable otlp
log exporter by default (i.e. otel.logs.exporter=otlp
). For more details, see tracking issue #5340. 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.
opentelemetry-opentracing-shim
is now stable!
SDK
- Create OtelVersion class at build time which is used to resolve artifact version in
Resource
. (#5365)
Metrics
- Add prototype histogram advice API (i.e. Hints). (#5217)
Logs
- Add LogRecord observed timestamp field. (#5370)
- Remove log record timestamp default. (#5374)
- Align BatchLogRecordProcessor defaults with specification. (#5364)
- Rename setEpoch to setTimestamp. (#5368)
- Log SDK cleanup. Move
InMemoryLogRecordExporter
toopentelemetry-sdk-logs-testing
. RenameInMemoryLogRecordExporter#getFinishedLogItems
togetFinishedLogRecordItems
. MoveSdkEventEmitterProvder
to internal package. (#5368)
Exporters
- Add scaffolding for low level exporter TLS API. (#5362)
- Add new low level TLS APIs on OTLP and Jaeger gRPC exporter builders. (#5280, #5422)
- OTLP LogRecord exporters serialize observed timestamp. (#5382)
- Update prometheus test to reflect new collector behavior. (#5417)
- Prometheus exporter checks metrics name to prevent add duplicated _total suffix. (#5308)
- Add additional OTLP test for authenticator. (#5391)
OpenTracing Shim
- Mark opentracing-shim as stable. (#5371)
SDK Extensions
- Fixes jaeger remote sampler service strategies bug resolving service name. (#5418)
- Fix flaky JaegerRemoteSamplerGrpcNettyTest. (#5385)
- Add new log level TLS APIs on JaegerRemoteSamplerBuilder. (#5422)
- Fix a parameter name typo in autoconfigure-spi module. (#5409)
Semantic Conventinos
- Add missing links to deprecated constants in SemanticAttributes. (#5406)
Project Tooling
- Update stale workflow. (#5381)
- Skip OWASP dependencyCheck on test modules. (#5383)
- Skip OWASP dependencyCheck on jmh tasks. (#5384)
- Drop create website pull request release step (#5361)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@breedx-splk
@carlosalberto
@chicobento
@chukunx
@DondekarShraddha
@Donnerbart
@jack-berg
@jkwatson
@mateuszrzeszutek
@ShadowySpirits
@trask
@tylerbenson
Version 1.25.0
API
- Cache ImmutableKeyValuePairs#hashCode (#5307)
Propagators
- Remove streams from B3Propagator (#5326)
SDK
Metrics
- Stop validating instrument unit (#5279)
- Make the Executor for PrometheusHttpServer configurable (#5296)
Exporter
Testing
- Fixing up javadoc to reflect how to create a junit4 OpenTelemetryRule (#5299)
SDK Extensions
- BREAKING: Autoconfigure drops support for
otel.exporter.otlp.metrics.default.histogram.aggregation=EXPONENTIAL_BUCKET_HISTOGRAM
. UseBASE2_EXPONENTIAL_BUCKET_HISTOGRAM
instead. (#5290) - JaegerRemoteSampler use upstream grpc implementation if ManagedChannel is set (#5287)
OpenTracing Shim
- Adds version to otel tracer instrumentation scope (#5336)
OpenCensus Shim
- Adds version to otel tracer instrumentation scope (#5336)
Semantic Conventions
- Update semconv to 1.19.0 and related build tool changes (#5311)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@971758118
@abhisesh
@anuraaga
@breedx-splk
@BrentDouglas
@dmarkwat
@jack-berg
@jkwatson
@lmolkova
@marcalff
@mateuszrzeszutek
@mbazos
@steffan-westcott
@trask
@zqq525
Version 1.24.0
SDK
Metrics
- Optimize DefaultSynchronousMetricStorage iteration to reduce allocations (#5183)
- Avoid exemplar allocations if there are no measurements (#5182)
- Remove boxed primitives from aggregations to reduce allocations (#5184)
- Stop ignoring long measurements in HistogramExemplarReservoir (#5216)
- Remove validations for noop instrument names and units (#5146)
- Allow views to select on instrument unit (#5255)
Exporter
- Add (internal) TlsConfigHelper for additional TLS configurability (#5246)
SDK Extensions
OpenTracing Shim
-
OpenTracing Shim: Update Tracer.close() (#5151)
-
Update version to 1.24.0 (#5198)
-
Post release 1.23.0 (#5202)
OpenCensus Shim
- Addresses opencensus-shim trace issues under otel javaagent (#4900)
Project tooling
- Cleanup readmes (#5263)
- Upgrade to gradle 8.0.1 (#5256)
- Fixed example resource provider classname. (#5235)
- Fix case of bug label in open issue workflow (#5268)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@anuraaga
@bogdandrutu
@breedx-splk
@carlosalberto
@cheempz
@chicobento
@der-eismann
@dmarkwat
@hriddhighosh4
@jack-berg
@jkwatson
@mateuszrzeszutek
@MrAlias
@rossabaker
@trask
@tsloughter
@yurishkuro
Version 1.23.1
This is a patch release on the previous 1.23.0 release, fixing the issue(s) below.
- Fix bug that broke
AutoConfiguredOpenTelemetrySdk
's shutdown hook. (#5221)