github open-telemetry/opentelemetry-java v1.68.0
Version 1.68.0

2 hours ago

API

  • Add null guards and API usage logging for tracing, metrics, propagation, and context APIs (#8913, #8968)
  • Add stable io.opentelemetry.api.impl.Base16EncodingUtils and TemporaryBuffers utilities (#8929, #8955)
  • Fix uncompilable Javadoc examples in context APIs (#8934)

Incubating

  • Avoid false type warnings in DeclarativeConfigProperties.toMap() (#8921)

Extensions

  • Trace propagators: Handle malformed URL escapes in Jaeger headers (#8912)
  • Trace propagators: Include the B3 debug header in multi-header propagation fields (#8930)
  • Trace propagators: Fix hexadecimal flag parsing in Jaeger headers (#8975)

SDK

  • Remove cross-module internal utility dependencies from resource and retry code (#8916)
  • Add experimental SdkResourceProvider support shared by tracer, meter, and logger providers (#8865)

Traces

  • Retain invalid span links with attributes or trace state (#8917)

Metrics

  • Use a dedicated export worker in PeriodicMetricReader, queue concurrent flushes, and add setExporterTimeout() with a default equal to the export interval (#8827)

Exporters

  • Logging: Fall back to the observed timestamp in SystemOutLogRecordExporter when the timestamp is unset (#8944)
  • OTLP: Close the JDK HTTP response body on unsupported Content-Encoding (#8962)
  • OTLP: Match the Host header case-insensitively in the managed-channel gRPC sender (#8957)
  • OTLP: Fix exporter metric server attributes for hosts that java.net.URI cannot parse (#8941)
  • OTLP: Pass the original exception to the JDK HTTP sender's error callback (#8963)
  • OTLP: Retry OkHttp gRPC exports on the current thread to avoid rejection by bounded executors (#8965)
  • OTLP: Restore per-attempt retry logging in the OkHttp gRPC sender (#8967)
  • OTLP: Correct exporter builder Javadoc (#8996)
  • OTLP: Accept 0 as no limit for maximum request body and message sizes (#8945)
  • OTLP: gRPC exporter internal telemetry uses rpc.status_code instead of rpc.response.status.code when InternalTelemetryVersion is set to LATEST (#9007)
  • Prometheus: Give exemplar trace_id and span_id precedence over filtered attributes (#8959)

Extensions

  • BREAKING Incubator: Change SamplingIntent.create() and getTraceStateUpdater() from Function to BiFunction accepting the final SamplingDecision, and fix consistent sampling corner cases (#8952)
  • Autoconfigure: Match environment variables for configuration keys containing underscores (#8933, #8951)
  • Autoconfigure: Support PeriodicMetricReader batch sizes through otel.metric.export.max.batch.size (#8935)
  • Autoconfigure: Correct SPI Javadoc (#8900)

Testing

  • Add fluent metric point assertions to MetricAssert (#8994)
  • Add a builder supporting aggregation temporality selectors to InMemoryMetricExporter (#8993)

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:

@anuraaga
@bogdandrutu
@breedx-splk
@dashpole
@jack-berg
@jameyg42
@jaydeluca
@jkwatson
@jsuereth
@kamikazeayoup
@nbiswal1
@NithinU2802
@opentelemetry-pr-dashboard
@psx95
@Rajkaran-122
@rooks-ns
@thswlsqls
@trask
@zeitlinger

Don't miss a new opentelemetry-java release

NewReleases is sending notifications on new releases.