Skip to content

Releases: open-telemetry/opentelemetry-java

Version 1.44.1

10 Nov 01:45
cb7d40a
Compare
Choose a tag to compare

This is a patch release on the previous 1.44.0 release, fixing the issue(s) below.

SDK

Traces

  • Fix regression in event attributes (#6865)

Version 1.44.0

08 Nov 20:33
08349dc
Compare
Choose a tag to compare

API

  • Fix ConfigUtil#getString ConcurrentModificationException (#6841)

SDK

Traces

  • Stabilize ExceptionEventData (#6795)

Metrics

  • Stabilize metric cardinality limits (#6794)
  • Refactor metrics internals to remove MeterSharedState (#6845)

Exporters

  • Add memory mode option to stdout exporters (#6774)
  • Log a warning if OTLP endpoint port is likely incorrect given the protocol (#6813)
  • Fix OTLP gRPC retry mechanism for unsuccessful HTTP responses (#6829)
  • Add ByteBuffer field type marshaling support (#6686)
  • Fix stdout exporter format by adding newline after each export (#6848)
  • Enable reusuable_data memory mode by default for OtlpGrpc{Signal}Exporter, OtlpHttp{Signal}Exporter, OtlpStdout{Signal}Exporter, and PrometheusHttpServer (#6799)

Extension

  • Rebrand file configuration to declarative configuration in documentation (#6812)
  • Fix declarative config file_format validation (#6786)
  • Fix declarative config env substitution by disallowing '}' in default value (#6793)
  • Set declarative config default OTLP protocol to http/protobuf (#6800)
  • Stabilize autoconfigure disabling of resource keys via otel.resource.disabled.keys (#6809)

Tooling

  • Run tests on Java 23 (#6825)
  • Test Windows in CI (#6824)
  • Add error prone checks for internal javadoc and private constructors (#6844)

๐Ÿ™‡ Thank you

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

@breedx-splk
@cyrille-leclerc
@hboutemy
@jack-berg
@jaydeluca
@jhalliday
@JiwonKKang
@jkwatson
@laurit
@neugartf
@OrangeFlag
@trask
@vasantteja
@zeitlinger

Version 1.43.0

11 Oct 17:03
bc4c65d
Compare
Choose a tag to compare

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, add StructuredConfigProperties.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

10 Sep 14:36
05e322b
Compare
Choose a tag to compare

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 from pom.xml. (#6695)

Version 1.42.0

06 Sep 15:47
96b2419
Compare
Choose a tag to compare

API

  • BREAKING: Stabilize log support for AnyValue bodies. Rename AnyValue to Value, promote from opentelemetry-api-incubator to opentelemetry-api, change package from io.opentelemetry.api.incubator.logs to io.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 to pollingIntervalMs 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

09 Aug 15:57
666bf9a
Compare
Choose a tag to compare

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 with failExceptionally(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

05 Jul 22:29
8094b39
Compare
Choose a tag to compare

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

07 Jun 12:14
96bb3ba
Compare
Choose a tag to compare

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

10 May 15:30
30d16eb
Compare
Choose a tag to compare

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.
    • Low allocation OTLP logs marshaler (#6429)
    • Low allocation OTLP metrics marshaler (#6422)
    • Low allocation OTLP trace marshaler (#6410)
    • Add memory mode support to OTLP exporters (#6430)
    • Marshal span status description without allocation (#6423)
    • Add private constructors for stateless marshalers (#6434)
  • 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

05 Apr 18:09
a3e7f51
Compare
Choose a tag to compare

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 to opentelemetry-api-incubator, merge opentelemetry-api-events into opentelemetry-api-incubator. (#6289)
  • BREAKING: Remove domain from event api. EventEmitterProvider#setEventDomain has been removed. The event.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 to EventLogger. (#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 to INFO=9. (#6318)

SDK

  • Add get{Signal}Exporter methods to Simple{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 generating service.instance.id UUID if not already provided by user. Included in opentelemetry-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