Version 0.14.0
Note : This release has been superceded by 0.14.1
This release had issues with publishing the opentelemetry-bom to maven central. This was addressed in v0.14.1.
General
- Several more modules have been updated to have
-alphaappended on their versions:opentelemetry-sdk-extension-jfr-eventsopentelemetry-sdk-extension-async-processoropentelemetry-sdk-extension-loggingopentelemetry-sdk-extension-zpagesopentelemetry-sdk-exporter-prometheusopentelemetry-sdk-exporter-tracing-incubatoropentelemetry-opentracing-shimopentelemetry-opencensus-shim
API
☢️ Breaking Changes
- Code that was deprecated in
0.13.0has been removed from the project.- Metrics interfaces are no longer available as a part of the
opentelemetry-pomor from theopentelemetry-apimodules.
To access the alpha metrics APIs, you will need to explicitly add them as a dependency. OpenTelemetry.setPropagators()has been removed. You should instead create your
OpenTelemetryimplementations with the Propagators preset, via the various builder options. For example, use
DefaultOpenTelemetry.builder().setPropagators(propagators).build()to configure your no-sdk implementation.- The
OpenTelemetry.builder()and theOpenTelemetryBuilderinterface have been removed.
The builder functionality is now only present on individual implementations of OpenTelemetry. For instance, the
DefaultOpenTelemetryclass has a builder available.
- Metrics interfaces are no longer available as a part of the
📈 Enhancements
- The SemanticAttributes have been updated to the latest version of the specification, as of January 7th, 2021.
🌟 Miscellaneous
- The SemanticAttributes class has been moved to a new module:
opentelemetry-semconvand repackaged into a new package:
io.opentelemetry.semconv.trace.attributes. The oldSemanticAttributesclass will be removed in the next release. - The SPI interfaces for OpenTelemetry have been deprecated. We are moving to a new auto-configuration approach with the
new SDK auto-configuration module:io.opentelemetry.sdk.autoconfigure. This module should be considered the officially
supported auto-configuration library moving forward.
SDK
🛠️ Bugfixes:
- Environment variables/system properties that are used to set extra headers for the OTLP exporters have been fixed to now
split on commas, rather than semicolons. This has been brought in line with the specification for these environment
variables. This includesotel.exporter.otlp.span.headers,otel.exporter.otlp.metric.headers, andotel.exporter.otlp.headers. - Passing a null span name when creating a span will no longer cause a NullPointerException. Instead, a default span name will be
provided in place of the missing name.
☢️ Breaking Changes
- The deprecated
SpanData.Link.getContext()method has been removed in favor ofSpanData.Link.getSpanContext(). - The
TracerProviderFactorySdkSPI class has been renamed toSdkTracerProviderFactory. - The
OpenTelemetrySdkBuilder.build()method has been renamed toOpenTelemetrySdkBuilder.buildAndRegisterGlobal().
Thebuild()method still exists, but no longer sets the instance on theGlobalOpenTelemetrywhen invoked. - The
SdkTracerManagement.shutdown()method now returnsCompletableResultCodewhich can be used to wait
asynchronously for shutdown to complete. - The
sampling.probabilitysampling attribute previously generated by theTraceIdRatioBasedSampleris no longer
generated, as it was not conformant with the specifications. - Inner classes of
SpanDatahave been moved to the top level
📈 Enhancements
- The
OtlpGrpcSpanExporternow supports setting trusted TLS certificates for secure communication with the collector. - A new module for supporting auto-configuration of the SDK has been added. The new module,
io.opentelemetry.sdk.autoconfigurewill
be the new path for auto-configuration of the SDK, including via SPI, environment variables and system properties. - The
TraceConfigclass now exposes abuilder()method directly, so you don't need to get the default then calltoBuilder()on it. - The OTLP protobuf definitions were updated to the latest released version:
0.7.0.
Both theSpanand (alpha)Metricexporters were updated to match. - Timeouts in the exporters can now be specified with
java.util.concurrent.TimeUnitandjava.time.Durationbased configurations,
rather than requiring milliseconds. - Objects that can be shutdown now also implement
Closeable StatusData.isUnsetandStatusData.isOkhave been deprecated and will be removed in the following release
🌟 Miscellaneous
SdkTracerProvider.updateActiveTraceConfig()andSdkTracerProvider.addSpanProcessor()have been deprecated. The methods
will be removed in the next release.- All existing auto-configuration mechanisms have been deprecated in favor of using the new
io.opentelemetry.sdk.autoconfigure
module. The existing ones will be removed in the next release. - The methods with the term "deadline" has been deprecated in the configuration of the grpc-based exporters (OTLP and Jaeger) in favor
of the word "timeout". The deadline-named methods will be removed in the next release. - The
StringUtilsclass in theopentelemetry-extension-trace-propagatorsextension module has been deprecated
and will be made non-public in the next release.
Extensions
☢️ Breaking Changes
- The ZPages extension now exposes its SpanProcessor implementation. To use it, you will need to add it to your
SDK implementation directly, rather than it adding itself to the global SDK instance. - The JaegerRemoteSampler builder patterns have been changed and updated to more closely match the rest
of the builders in the project.
🛠️ Bugfixes:
- The JaegerRemoteSampler now uses the ParentBased sampler as the basis for any sampling that is done.
🌟 Miscellaneous
- The
AwsXrayIdGeneratorconstructor has been deprecated in favor of using a simplegetInstance()singleton, since
it has no state. - The
TraceProtoUtilsclass in theopentelemetry-sdk-extension-otprotomodule has been deprecated and
will be removed in the next release.