Changes from 0.10.0:
API
Breaking changes:
- The SPI interfaces have moved to a package (not a module) separate from the API packages, and now live in
io.opentelemetry.spi.*
package namespace. - Builder classes have been moved to the top level, rather than being inner classes.
For example, rather thanio.opentelemetry.api.trace.Span.Builder
, the builder is now in its own top-level class:io.opentelemetry.api.trace.SpanBuilder
.
Methods to create the builders remain in the same place as they were before. - SpanBuilder.setStartTimestamp, Span.end, and Span.addEvent methods which accept a timestamp now accept a timestamp with a TimeUnit instead of requiring a nanos timestamp
Enhancements:
- Versions of SpanBuilder.setStartTimestamp, Span.end, and Span.addEvent added which accept Instant timestamps
- Setting the value of the
io.opentelemetry.context.contextStorageProvider
System property todefault
will enforce that
the default (thread local) ContextStorage will be used for the Context implementation, regardless of what SPI implementations are
available.
Miscellaneous:
- Invalid W3C
TraceState
entries will now be silently dropped, rather than causing the invalidation of the entireTraceState
.
SDK
Breaking Changes:
- The builder class for the
OpenTelemetrySdk
now strictly requires its components to be SDK implementations.
You can only build anOpenTelemetrySdk
withTracerSdkProvider
andMeterSdkProvider
instances.
Enhancements:
- An API has been added to the SDK's MeterProvider implementation (
MeterSdkProvider
) that allows the end-user to configure
how various metrics will be aggregated. This API should be considered a precursor to a full "Views" API, and will most likely
evolve over the coming months before the metrics implementation is complete. See the javadoc forMeterSdkProvider.registerView()
for details.
Miscellaneous:
- The
SpanProcessor
interface now includes default method implementations for theshutdown()
andforceFlush()
methods. - The BatchRecorder implementation has been updated to actually batch the recordings, rather than simply passing them through.
Extensions
Breaking Changes:
- The
@WithSpan
annotation has been moved to theio.opentelemetry.extension.annotations
package in theopentelemetry-extension-annotations
module
Bugfixes:
- The memory pool metrics provided by the MemoryPools class in the
opentelemetry-extension-runtime-metrics
module
have been fixed to properly report the committed memory values.
Enhancements:
- A new module has been added to assist with propagating the OTel context in kotlin co-routines.
See theopentelemetry-extension-kotlin
module for details.