Releases: open-telemetry/opentelemetry-java
Version 1.44.1
This is a patch release on the previous 1.44.0 release, fixing the issue(s) below.
SDK
Traces
- Fix regression in event attributes (#6865)
Version 1.44.0
API
- Fix ConfigUtil#getString ConcurrentModificationException (#6841)
SDK
Traces
- Stabilize ExceptionEventData (#6795)
Metrics
- Stabilize metric cardinality limits (#6794)
- Refactor metrics internals to remove MeterSharedState (#6845)
Exporters
- Add memory mode option to stdout exporters (#6774)
- Log a warning if OTLP endpoint port is likely incorrect given the protocol (#6813)
- Fix OTLP gRPC retry mechanism for unsuccessful HTTP responses (#6829)
- Add ByteBuffer field type marshaling support (#6686)
- Fix stdout exporter format by adding newline after each export (#6848)
- Enable
reusuable_data
memory mode by default forOtlpGrpc{Signal}Exporter
,OtlpHttp{Signal}Exporter
,OtlpStdout{Signal}Exporter
, andPrometheusHttpServer
(#6799)
Extension
- Rebrand file configuration to declarative configuration in documentation (#6812)
- Fix declarative config
file_format
validation (#6786) - Fix declarative config env substitution by disallowing '}' in default value (#6793)
- Set declarative config default OTLP protocol to http/protobuf (#6800)
- Stabilize autoconfigure disabling of resource keys via
otel.resource.disabled.keys
(#6809)
Tooling
- Run tests on Java 23 (#6825)
- Test Windows in CI (#6824)
- Add error prone checks for internal javadoc and private constructors (#6844)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@breedx-splk
@cyrille-leclerc
@hboutemy
@jack-berg
@jaydeluca
@jhalliday
@JiwonKKang
@jkwatson
@laurit
@neugartf
@OrangeFlag
@trask
@vasantteja
@zeitlinger
Version 1.43.0
API
- Add helper class to capture context using ScheduledExecutorService (#6712)
- Adds Baggage.getEntry(String key) (#6765)
Extensions
- Fix ottracepropagation for short span ids (#6734)
SDK
Metrics
- Optimize advice with FilteredAttributes (#6633)
Exporters
- Add experimental stdout log, metric, trace exporters for printing records to stdout in standard OTLP JSON format. (#6675, #6750)
- Add Marshalers for profiling signal type (#6680)
Extensions
- Add
*Model
suffix to declarative config generated classes. (#6721) - Use autoconfigured ClassLoader to load declarative config (#6725)
- Update declarative config to use opentelemetry-configuration v0.3.0 (#6733)
- Add
StructuredConfigProperties#getStructured
default method, addStructuredConfigProperties.empty()
(#6759)
Testing
- Add context info about wrong span or trace. (#6703)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@ammachado
@breedx-splk
@codeboten
@codefromthecrypt
@jack-berg
@jhalliday
@jkwatson
@laurit
@reta
@shalk
@smola
@stevesea
@trask
@vasantteja
@viveksing
@wgy035
@zeitlinger
Version 1.42.1
This is a patch release on the previous 1.42.0 release, fixing the issue(s) below.
API
- Revert
java-test-fixtures
plugin to remove test dependencies frompom.xml
. (#6695)
Version 1.42.0
API
- BREAKING: Stabilize log support for AnyValue bodies. Rename
AnyValue
toValue
, promote fromopentelemetry-api-incubator
toopentelemetry-api
, change package fromio.opentelemetry.api.incubator.logs
toio.opentelemetry.api.common
. (#6591) - Noop implementations detect when
opentelemetry-api-incubator
is present and return extended noop implementations. (#6617)%
SDK
Traces
- Added experimental support for SpanProcessor OnEnding callback (#6367)
- Remove final modifier from SdkTracer.tracerEnabled (#6687)
Exporters
- Suppress zipkin exporter instrumentation (#6552)
- OTLP exporters return status code exceptions via CompletableResultCode in GrpcExporter and HttpExporter. (#6645)
- Align GrpcSender contract with HttpSender (#6658)
Extensions
- Add autoconfigure support for ns and us durations (#6654)
- Add declarative configuration ComponentProvider support for resources (#6625)
- Add declarative configuration ComponentProvider support for processors (#6623)
- Add declarative configuration ComponentProvider support for samplers (#6494)
- Add declarative configuration ComponentProvider support for propagators (#6624)
- Add declarative configuration missing pieces (#6677)
- Change jaeger remote sampler autoconfigure property from
pollingInterval
topollingIntervalMs
to match spec. (#6672)
Testing
- Add asserts for log record body fields (#6509)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@anuraaga
@breedx-splk
@chungngoops
@codefromthecrypt
@drewhammond
@galahad098
@jack-berg
@jackshirazi
@jarrodrobins
@jkwatson
@JonasKunz
@laurit
@LikeTheSalad
@SylvainJuge
@trask
@zeitlinger
Version 1.41.0
API
- Move experimental suppress instrumentation context key to api internal package (#6546)
Incubator
- Fix bug in
ExtendedContextPropagators
preventing context extraction when case is incorrect. (#6569)
SDK
- Extend
CompletableResultCode
withfailExceptionally(Throwable)
. (#6348)
Metrics
- Avoid allocations when experimental advice doesn't remove any attributes. (#6629)
Exporter
- Enable retry by default for OTLP exporters. (#6588)
- Retry ConnectException, add retry logging. (#6614)
- Extend
PrometheusHttpServer
with ability to configure default aggregation as function of instrument kind, including experimental env var support. (#6541) - Add exporter data model impl for profiling signal type. (#6498)
- Add Marshalers for profiling signal type. (#6565)
- Use generateCertificates() of CertificateFactory to process certificates. (#6579)
Extensions
- Add file configuration ComponentProvider support for exporters. (#6493)
- Remove nullable from file config Factory contract. (#6612)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@Abhishekkr3003
@abvaidya
@breedx-splk
@driverpt
@galahad098
@hongshuai1994
@jack-berg
@jarrodrobins
@jaydeluca
@jhalliday
@jkwatson
@junwense
@LikeTheSalad
@Oberon00
@shalk
@swar8080
@SylvainJuge
@trask
@tylerbenson
@wgy035
Version 1.40.0
API
Incubator
- Narrow ExtendedSpanBuilder return types for chaining (#6514)
- Add APIs to determine if tracer, logger, instruments are enabled (#6502)
SDK
Extensions
- Move autoconfigure docs to opentelemetry.io (#6491)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@breedx-splk
@heyams
@huange7
@ICTylor
@jack-berg
@jaydeluca
@jkwatson
@laurit
@sebastian-alfers
@trask
Version 1.39.0
API
Incubator
- BREAKING: Refactor ExtendedTracer, ExtendedSpanBuilder to reflect incubating API conventions (#6497)
SDK
Exporter
- BREAKING: Serve prometheus metrics only on
/metrics
by default. To restore the previous behavior and serve metrics on all paths, override the default handler as demonstrated here. (#6476) - Make OTLP exporter memory mode API public (#6469)
- Speed up OTLP string marshaling using sun.misc.Unsafe (#6433)
- Add exporter data classes for experimental profiling signal type. (#6374)
- Start prometheus http server with daemon thread (#6472)
- Update the Prometheus metrics library and improve how units are included in metric names. (#6473)
- Remove android animalsniffer check from prometheus exporter (#6478)
Extensions
- Load file config YAML using core schema, ensure that env var substitution retains string types. (#6436)
- Define dedicated file configuration SPI ComponentProvider (#6457)
Tooling
- Normalize timestamps and file ordering in jars, making the outputs reproducible (#6471)
- GHA for generating the post-release pull request (#6449)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@breedx-splk
@crossoverJie
@DPUkyle
@fstab
@hboutemy
@jack-berg
@jhalliday
@jkwatson
@laurit
@lizongwu
@nluk
@trask
@zeitlinger
Version 1.38.0
API
- Stabilize synchronous gauge (#6419)
Incubator
- Add put(AttributeKey, T) overload to EventBuilder (#6331)
Baggage
- Baggage filters space-only keys (#6431)
SDK
- Add experimental scope config to enable / disable scopes (i.e. meter, logger, tracer) (#6375)
Traces
- Add ReadableSpan#getAttributes (#6382)
- Use standard ArrayList size rather than max number of links for initial span links allocation (#6252)
Metrics
- Use low precision Clock#now when computing timestamp for exemplars (#6417)
- Update invalid instrument name log message now that forward slash
/
is valid (#6343)
Exporters
- Introduce low allocation OTLP marshalers. If using autoconfigure, opt in via
OTEL_JAVA_EXPERIMENTAL_EXPORTER_MEMORY_MODE=REUSABLE_DATA
. - Mark opentelemetry-exporter-sender-jdk stable (#6357)
- PrometheusHttpServer prevent concurrent reads when reusable memory mode (#6371)
- Ignore TLS components (SSLContext, TrustManager, KeyManager) if plain HTTP protocol is used for exporting (#6329)
- Add is_remote_parent span flags to OTLP exported Spans and SpanLinks (#6388)
- Add missing fields to OTLP metric exporters
toString()
(#6402)
Extensions
- Rename otel.config.file to otel.experimental.config.file for autoconfigure (#6396)
OpenCensus Shim
- Fix opencensus shim spanBuilderWithRemoteParent behavior (#6415)
Tooling
- Add additional API incubator docs (#6356)
- Run build on java 21 (#6370)
- Fix running tests with java 8 on macos (#6411)
- Move away from deprecated gradle enterprise APIs (#6363)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@AlexanderWert
@anuraaga
@arosien
@breedx-splk
@gavin-nia
@jack-berg
@jimshowalter
@jkwatson
@johnbley
@laurit
@LikeTheSalad
@oliver-zhang
@serkan-ozal
@tkmsaaaam
@trask
@tylerbenson
Version 1.37.0
NOTICE: This release contains a significant restructuring of the experimental event API and the API incubator artifact. Please read the notes in the API -> Incubator
section carefully.
API
- Promote
Span#addLink
to stable API (#6317)
Incubator
- BREAKING: Rename
opentelemetry-extension-incubator
toopentelemetry-api-incubator
, mergeopentelemetry-api-events
intoopentelemetry-api-incubator
. (#6289) - BREAKING: Remove domain from event api.
EventEmitterProvider#setEventDomain
has been removed. Theevent.name
field should now be namespaced to avoid collisions. See Semantic Conventions for Event Attributes for more details. (#6253) - BREAKING: Rename
EventEmitter
and related classes toEventLogger
. (#6316) - BREAKING: Refactor Event API to reflect spec changes. Restructure API to put fields in the
AnyValue
log record body. Add setters for timestamp, context, and severity. Set default severity toINFO=9
. (#6318)
SDK
- Add
get{Signal}Exporter
methods toSimple{Signal}Processor
,Batch{Signal}Processor
. (#6078)
Metrics
- Use synchronized instead of reentrant lock in explicit bucket histogram (#6309)
Exporters
- Fix typo in OTLP javadoc (#6311)
- Add
PrometheusHttpServer#toBuilder()
(#6333) - Bugfix: Use
getPrometheusName
for Otel2PrometheusConverter map keys to avoid metric name conflicts (#6308)
Extensions
- Add Metric exporter REUSABLE_DATA memory mode configuration options, including autoconfigure support via env var
OTEL_JAVA_EXPERIMENTAL_EXPORTER_MEMORY_MODE=REUSABLE_DATA
. (#6304) - Add autoconfigure console alias for logging exporter (#6027)
- Update jaeger autoconfigure docs to point to OTLP (#6307)
- Add
ServiceInstanceIdResourceProvider
implementation for generatingservice.instance.id
UUID if not already provided by user. Included inopentelemetry-sdk-extension-incubator
. (#6226) - Add GCP resource detector to list of resource providers in autoconfigure docs (#6336)
Tooling
- Check for Java 17 toolchain and fail if not found (#6303)
๐ Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@asafm
@bogdandrutu
@breedx-splk
@brunobat
@helpermethod
@jack-berg
@jkwatson
@jonatan-ivanov
@jpkrohling
@MSNev
@nluk
@psx95
@robberphex
@scheler
@trask
@zeitlinger