Releases: open-telemetry/opentelemetry-java
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
Version 1.36.0
SDK
Traces
- Lazily initialize the container for events in the SDK Span implementation (#6244)
Exporters
- Add basic proxy configuration to OtlpHttp{Signal}Exporters (#6270)
- Add connectTimeout configuration option OtlpGrpc{Signal}Exporters (#6079)
Extensions
- Add ComponentLoader to autoconfigure support more scenarios (#6217)
- Added MetricReader customizer for AutoConfiguredOpenTelemetrySdkBuilder (#6231)
- Return AutoConfiguredOpenTelemetrySdkBuilder instead of the base type (#6248)
Tooling
- Add note about draft PRs to CONTRIBUTING.md (#6247)
π Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@alexandru-roman-db
@asafm
@breedx-splk
@jack-berg
@jeanbisutti
@jkwatson
@johnbley
@lmolkova
@marcschumacher
@trask
@tydhot
@zeitlinger
Version 1.35.0
NOTE: The opentelemetry-exporter-jaeger
and opentelemetry-exporter-jaeger-thift
artifacts have stopped being published. Jaeger has native support for OTLP, and users should export to jaeger using OTLP instead.
API
Incubator
- Add Span#addLink, for adding a link after span start (#6084)
SDK
Traces
- Bugfix: Ensure span status cannot be updated after set to StatusCode.OK (#6209
Metrics
- Reusable memory Mode: Adding support for exponential histogram aggregation (#6058, #6136)
- Reusable memory mode: Adding support for explicit histogram aggregation (#6153)
- Reusable memory mode: Adding support for sum aggregation (#6182)
- Reusable memory mode: Adding support for last value aggregation (#6196)
Exporters
- Recreate / fix graal issue detecting RetryPolicy class (#6139, #6134)
- Restore prometheus metric name mapper tests, fix regressions (#6138)
- WARNING: Remove jaeger exporters (#6119)
- Update dependency
io.zipkin.reporter2:zipkin-reporter-bom
to 3.2.1. Note:ZipkinSpanExporterBuilder#setEncoder(zipkin2.codec.BytesEncoder)
has been deprecated in favor ofZipkinSpanExporterBuilder#setEncoder(zipkin2.reporter.BytesEncoder)
.ZipkinSpanExporterBuilder#setSender(zipkin2.reporter.Sender)
has been deprecated in favor ofZipkinSpanExporterBuilder#setSender(zipkin2.reporter.BytesMessageSender)
. (#6129, #6151) - Include trace flags in otlp marshaller (#6167)
- Add Compressor SPI support to OtlpGrpc{Signal}Exporters (#6103)
- Allow Prometheus exporter to add resource attributes to metric attributes (#6179)
Extension
- Autoconfigure accepts encoded header values for OTLP exporters (#6164)
Incubator
- Align file configuration with latest changes to spec (#6088)
Tooling
π Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@apederson94
@asafm
@breedx-splk
@brunobat
@codefromthecrypt
@fstab
@jack-berg
@jkwatson
@NicklasWallgren
@patrick-me
@psx95
@trask
@zeitlinger