NOTE: The opentelemetry-exporter-zipkin artifact has stopped being published. It was deprecated in a prior release. Users should migrate to OTLP or use a Zipkin-compatible collector exporter.
API
- Ignore empty baggage keys in
ImmutableBaggage.put(#8658) - Use
NumberFormatExceptionin baggage decoder (#8593) - Fix
TraceStateBuilder.removecorrupting the builder when the same key is removed twice (#8613)
Incubating
- Add bound instrument APIs (
BoundLongCounter,BoundDoubleCounter,BoundLongHistogram,BoundDoubleHistogram,BoundLongUpDownCounter,BoundDoubleUpDownCounter,BoundLongGauge,BoundDoubleGauge) to the incubator metrics API (#8527)
Extensions
- Trace propagators: Fix
JaegerPropagatorbaggage header key case sensitivity (#8496) - Trace propagators: Do not overwrite existing baggage with empty baggage in
JaegerPropagator(#8632) - Trace propagators: Skip empty baggage keys in
OtTracePropagatorextract (#8631) - Trace propagators: Stop parsing a
jaeger-baggageheader after 64 tokens, including malformed tokens (#8702)
SDK
- Update SDK attributes implementation (
AttributesMap) to enforce last-value-win semantics based on string value ofAttributeKey.getKey()(#8548)
Traces
- Add
Samplershutdown lifecycle:Samplernow extendsCloseableand exposes a defaultshutdown()invoked when theSdkTracerProvideris shut down;JaegerRemoteSamplerimplements it to stop its polling executor (#8574)
Metrics
- Gate
PeriodicMetricReaderself-observability metrics by internal telemetry version (#8597) - Record
error.typeon failed collections inPeriodicMetricReader(#8650) - Testing: Fix
LongExemplarAssert.hasFilteredAttributesSatisfyingExactlyto enforce exact attribute matching (#8518)
Logs
- Fix
ReadWriteLogRecorddefaultgetObservedTimestampEpochNanosreturning the record timestamp (#8504)
Profiles
- Fix profiles data model attribute count parameter name and timestamp doc unit (#8514)
Exporters
- WARNING Zipkin: Delete
opentelemetry-exporter-zipkin; the artifact is no longer published (#8677) - OTLP: Use HTTP error response bodies in
HttpExporterwarning logs (#8428) - OTLP: Fix
OkHttpHttpSendermTLS when using the platform default trust store (#8565) - OTLP: Fix sign extension on
LogRecordflags in the low-allocation log marshaler (#8493) - OTLP: Standardize
OkHttpHttpSender,JdkHttpSender, andUpstreamGrpcSendershutdown to await executor/channel termination (#8495, #8627, #8624) - OTLP: Log the underlying except/ion when a gRPC response frame is invalid (#8626)
- OTLP: Avoid the unsafe string encoder on Android (#8637)
- Prometheus: Merge colliding Prometheus label values (#8364)
- Prometheus: Fix
PrometheusHttpServer.toBuilder()dropping the configured default handler (#8619) - Logging: Output event name in
SystemOutLogRecordExporter(#8609) - Logging: Include aggregation temporality in
LoggingMetricExportertoString(#8623)
Extensions
- Autoconfigure: Avoid exposing configuration values in error messages (#8669)
- Declarative config: Fix Jaeger sampler polling interval configuration (#8668)
- Declarative config: Remove duplicate
getStringListresolver inDeclarativeConfigPropertyUtil(#8572) - Declarative config: Replace
jsonschema2pojowith a hand-rolled POJO generator (#8600) - Incubator: Restore compliance between composite samplers code and the spec (#8450)
Shims
- DEPRECATION Deprecate the OpenCensus shim public API (#8674)
- OpenCensus: Preserve OpenCensus status description when converting to OpenTelemetry (#8511)
- OpenCensus: Add links to the OpenTelemetry span instead of logging a warning and dropping them (#8635)
- OpenTracing: Return
nullfromTracerShimextract when the carrier has no span context (#8505) - OpenTracing: Return the extracted
SpanContextwhen it is sampled but invalid (#8634)
Project tooling
- Pin japicmp baseline in
version.gradle.kts(#8591) - Update contributing guide in response to feedback (#8655)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@abdessattar23
@ADITYA-CODE-SOURCE
@anoopjb
@breedx-splk
@calohmn
@ChenX1993
@cijothomas
@Dainerx
@Debashismitra01
@EvgeniiR
@fossadvocate86
@jack-berg
@jaydeluca
@jkwatson
@kevinburkesegment
@LarryHu0217
@LikeTheSalad
@maryliag
@NithinU2802
@opentelemetry-pr-dashboard
@PeterF778
@prasadw
@psx95
@Rajkaran-122
@Sabaev
@Teseus84
@thswlsqls
@TimurRakhmatullin86
@trask
@vadyanuch13-ai
@zeitlinger