Skip to content

Releases: open-telemetry/opentelemetry-java

Version 1.29.0

11 Aug 16:23
cbb4450
Compare
Choose a tag to compare

API

  • Update Span javadoc to allow null/empty attr values (#5616)

SDK

  • Add Sdk{Signal}ProviderBuilder#addResource(Resource) method to merge Resource with current (#5619)

Metrics

  • Add LongHistogramAdviceConfigurer to improve api surface types (#5689)
  • Instruments with names which are case-insensitive equal contribute to same metric, advice is not part of instrument identity. (#5701)

Exporter

  • Add OtlpHttp{Signal}Exporter#toBuilder() methods (#5652)
  • Add OtlpGrpc{Signal}Exporter#toBuilder() methods (#5680)
  • Add #toString to OTLP exporters (#5686)
  • Break out GrpcSender, GrpcSenderProvider (#5617)

SDK Extensions

  • BREAKING: Delete zpages (#5611)
  • Initialize file configuration with generated model classes and parse method (#5399)
  • Refactor SpiUtil to improve mocking (#5679)
  • Switch from snakeyaml to snakeyaml engine (#5691)
  • Add experimental autoconfigure support for customizing cardinality limit (#5659)
  • Reorganize autoconfigure docs by signal (#5665)

Testing

  • Add hasResourceSatisfying to LogRecordDataAssert (#5690)

OpenCensus Shim

  • Change OpenCensus shim default sampling to defer to OpenTelemetry (#5604)

Project Tooling

  • Update Gradle Wrapper from 8.2 to 8.2.1 (#5618)
  • Fix gradle java version requirement warning (#5624)
  • Refer to Adoptium/Temurin instead of AdoptOpenJDK (#5636)
  • Use OtelVersionClassPlugin instead of reading version from resource (#5622)
  • Enforce build-graal success in required status check (#5696)

🙇 Thank you

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

@aabmass
@akats7
@breedx-splk
@cartermp
@chalin
@jack-berg
@jkwatson
@jsuereth
@keithc-ca
@mateuszrzeszutek
@parth1601
@svrnm
@trask
@tylerbenson
@zeitlinger

Version 1.28.0

07 Jul 12:31
1733d2c
Compare
Choose a tag to compare

opentelemetry-sdk-extension-autoconfigure is now stable! See "SDK Extension" notes below for changes made prior to stabilization.

SDK

Metrics

  • Make Advice proper immutable class (#5532)
  • Show attributes when async instruments record duplicate measurements (#5542)
  • After cardinality limit exceeded record measurements to overflow series (#5560)

Exporter

  • Add HttpSender abstraction with OkHttp implementation (#5505)
  • Add HttpSenderProvider SPI (#5533)
  • Add JDK 11+ HttpClient HttpSender implementation (#5557)
  • Remove unnecessary :exporter:otlp:common dependencies (#5535)
  • Fix OTLP exporter artifact name in an error message (#5541)
  • Stabilize RetryPolicy API for OTLP exporters (#5524)
  • DEPRECATION: opentelemetry-exporter-jaeger and opentelemetry-exporter-jaeger-thrift are now deprecated with the last release planned for 1.34.0 (January 2024) (#5190)

SDK Extensions

  • Mark opentelemetry-sdk-extension-autoconfigure as stable (#5577)
  • Refactor autoconfigure registerShutdownHook(boolean) to disableShutdownHook() (#5565)
  • AutoConfiguredOpenTelemetrySdkBuilder does not set GlobalOpenTelemetry by default (#5564)
  • Add public API to autoconfigure to access environment resource (#5554)
  • Move autoconfigure getConfig to internal, remove getResource (#5467)
  • Add autoconfigure support for low memory metric temporality setting (#5558)
  • DEPRECATION: zpages extension from opentelemetry-sdk-extension-incubator is now deprecated (#5578)

Project tooling

  • Publish build scans to ge.opentelemetry.io (#5510)
  • Update Gradle Wrapper from 8.0.1 to 8.1.1 (#5531)
  • Add action to auto update gradle wrapper (#5511)

🙇 Thank you

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

@bogdandrutu
@breedx-splk
@brunobat
@damian-les
@jack-berg
@jkwatson
@jsuereth
@mateuszrzeszutek
@trask
@tylerbenson
@zeitlinger

Version 1.27.0

09 Jun 17:01
5a882c8
Compare
Choose a tag to compare

The log bridge API / SDK are now stable! Some important notes:

  • The contents of opentelemetry-api-logs have been merged into opentelemetry-api.
  • The contents of opentelemetry-exporter-otlp-logs have been merged into opentelemetry-exporter-otlp.
  • The contents of opentelemetry-sdk-logs-testing have been merged into opentelemetry-sdk-testing.
  • The opentelemetry-sdk-logs artifact has been marked stable.
  • opentelemetry-sdk-extension-autoconfigure has changed the default value of otel.logs.exporter from none to otlp.

NOTE: reminder that the Logs Bridge API is not meant for end users. Log appenders use the API to bridge logs from existing log frameworks (e.g. JUL, Log4j, SLf4J, Logback) into OpenTelemetry. Users configure the Log SDK to dictate how logs are processed and exported. See opentelemetry.io for documentation on usage.

API

  • Promote log API to stable (#5341)
  • fix doc for OpenTelemetry class (#5454)

SDK

  • Ensure correct compiled output and sources are included in multi version jar (#5487)

Logs

  • Fix broken link (#5451)
  • Add meaningful .toString to NoopLogRecordProcessor and DefaultOpenTelemetry (#5493)
  • Promote log SDK to stable (#5341)

Metrics

  • Reset exponential aggregator scale after collection (#5496)
  • Experimental metric reader and view cardinality limits (#5494)

Exporter

  • Merge otlp logs (#5432)
  • Append unit to prometheus metric names (#5400)

Testing

  • Merge sdk logs testing (#5431)
  • Add a hasBucketBoundaries() variant that allows specifying precision (#5457)

SDK Extensions

  • Enable otlp logs by default in autoconfigure (#5433)

Semantic Conventions

  • Update to semconv 1.20.0 (#5497)

🙇 Thank you

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

@alanwest
@bogdandrutu
@breedx-splk
@Emily-Jiang
@fmhwong
@iRevive
@Izzzu
@jack-berg
@jkwatson
@jsuereth
@kenfinnigan
@lu-xiaoshuang
@mateuszrzeszutek
@psx95
@the-vj
@tigrannajaryan
@trask

Version 1.26.0

05 May 20:02
22fdec2
Compare
Choose a tag to compare

This release represents the release candidate ("RC") release for the Logs Bridge API / SDK. In the next release (1.27.0), opentelemetry-api-logs will be merged into opentelemetry-api, opentelemetry-sdk-logs will be marked as stable, opentelemetry-exporter-otlp-logs will be merged into opentelemetry-exporter-otlp, opentelemetry-sdk-logs-testing will be merged into opentelemetry-sdk-testing, opentelemetry-sdk-extension-autoconfigure will enable otlp log exporter by default (i.e. otel.logs.exporter=otlp). For more details, see tracking issue #5340. NOTE: reminder that the Logs Bridge API is not meant for end users. Log appenders use the API to bridge logs from existing log frameworks (e.g. JUL, Log4j, SLf4J, Logback) into OpenTelemetry. Users configure the Log SDK to dictate how logs are processed and exported.

opentelemetry-opentracing-shim is now stable!

SDK

  • Create OtelVersion class at build time which is used to resolve artifact version in Resource. (#5365)

Metrics

  • Add prototype histogram advice API (i.e. Hints). (#5217)

Logs

  • Add LogRecord observed timestamp field. (#5370)
  • Remove log record timestamp default. (#5374)
  • Align BatchLogRecordProcessor defaults with specification. (#5364)
  • Rename setEpoch to setTimestamp. (#5368)
  • Log SDK cleanup. Move InMemoryLogRecordExporter to opentelemetry-sdk-logs-testing. Rename InMemoryLogRecordExporter#getFinishedLogItems to getFinishedLogRecordItems. Move SdkEventEmitterProvder to internal package. (#5368)

Exporters

  • Add scaffolding for low level exporter TLS API. (#5362)
  • Add new low level TLS APIs on OTLP and Jaeger gRPC exporter builders. (#5280, #5422)
  • OTLP LogRecord exporters serialize observed timestamp. (#5382)
  • Update prometheus test to reflect new collector behavior. (#5417)
  • Prometheus exporter checks metrics name to prevent add duplicated _total suffix. (#5308)
  • Add additional OTLP test for authenticator. (#5391)

OpenTracing Shim

  • Mark opentracing-shim as stable. (#5371)

SDK Extensions

  • Fixes jaeger remote sampler service strategies bug resolving service name. (#5418)
  • Fix flaky JaegerRemoteSamplerGrpcNettyTest. (#5385)
  • Add new log level TLS APIs on JaegerRemoteSamplerBuilder. (#5422)
  • Fix a parameter name typo in autoconfigure-spi module. (#5409)

Semantic Conventinos

  • Add missing links to deprecated constants in SemanticAttributes. (#5406)

Project Tooling

  • Update stale workflow. (#5381)
  • Skip OWASP dependencyCheck on test modules. (#5383)
  • Skip OWASP dependencyCheck on jmh tasks. (#5384)
  • Drop create website pull request release step (#5361)

🙇 Thank you

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

@breedx-splk
@carlosalberto
@chicobento
@chukunx
@DondekarShraddha
@Donnerbart
@jack-berg
@jkwatson
@mateuszrzeszutek
@ShadowySpirits
@trask
@tylerbenson

Version 1.25.0

07 Apr 14:47
cea8cf1
Compare
Choose a tag to compare

API

  • Cache ImmutableKeyValuePairs#hashCode (#5307)

Propagators

  • Remove streams from B3Propagator (#5326)

SDK

Metrics

  • Stop validating instrument unit (#5279)
  • Make the Executor for PrometheusHttpServer configurable (#5296)

Exporter

  • Fix marshaler self suppression error (#5318)
  • Add sdk dependency to Logging OTLP exporter (#5291)

Testing

  • Fixing up javadoc to reflect how to create a junit4 OpenTelemetryRule (#5299)

SDK Extensions

  • BREAKING: Autoconfigure drops support for otel.exporter.otlp.metrics.default.histogram.aggregation=EXPONENTIAL_BUCKET_HISTOGRAM. Use BASE2_EXPONENTIAL_BUCKET_HISTOGRAM instead. (#5290)
  • JaegerRemoteSampler use upstream grpc implementation if ManagedChannel is set (#5287)

OpenTracing Shim

  • Adds version to otel tracer instrumentation scope (#5336)

OpenCensus Shim

  • Adds version to otel tracer instrumentation scope (#5336)

Semantic Conventions

  • Update semconv to 1.19.0 and related build tool changes (#5311)

🙇 Thank you

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

@971758118
@abhisesh
@anuraaga
@breedx-splk
@BrentDouglas
@dmarkwat
@jack-berg
@jkwatson
@lmolkova
@marcalff
@mateuszrzeszutek
@mbazos
@steffan-westcott
@trask
@zqq525

Version 1.24.0

10 Mar 17:26
05b6dfa
Compare
Choose a tag to compare

SDK

Metrics

  • Optimize DefaultSynchronousMetricStorage iteration to reduce allocations (#5183)
  • Avoid exemplar allocations if there are no measurements (#5182)
  • Remove boxed primitives from aggregations to reduce allocations (#5184)
  • Stop ignoring long measurements in HistogramExemplarReservoir (#5216)
  • Remove validations for noop instrument names and units (#5146)
  • Allow views to select on instrument unit (#5255)

Exporter

  • Add (internal) TlsConfigHelper for additional TLS configurability (#5246)

SDK Extensions

  • Introduce mTLS support for JaegerRemoteSamplerBuilder (#5209) (#5248)

OpenTracing Shim

  • OpenTracing Shim: Update Tracer.close() (#5151)

  • Update version to 1.24.0 (#5198)

  • Post release 1.23.0 (#5202)

OpenCensus Shim

  • Addresses opencensus-shim trace issues under otel javaagent (#4900)

Project tooling

  • Cleanup readmes (#5263)
  • Upgrade to gradle 8.0.1 (#5256)
  • Fixed example resource provider classname. (#5235)
  • Fix case of bug label in open issue workflow (#5268)

🙇 Thank you

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

@anuraaga
@bogdandrutu
@breedx-splk
@carlosalberto
@cheempz
@chicobento
@der-eismann
@dmarkwat
@hriddhighosh4
@jack-berg
@jkwatson
@mateuszrzeszutek
@MrAlias
@rossabaker
@trask
@tsloughter
@yurishkuro

Version 1.23.1

15 Feb 20:43
49577ff
Compare
Choose a tag to compare

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

  • Fix bug that broke AutoConfiguredOpenTelemetrySdk's shutdown hook. (#5221)

Version 1.23.0

10 Feb 20:35
a295066
Compare
Choose a tag to compare

This release is a notable release for metrics:

  • The base2 exponential histogram aggregation has been marked as stable. To use, configure your MetricExporter with a default aggregation of Aggregation.base2ExponentialBucketHistogram() for histogram instruments. If using OTLP exporter with autoconfigure, set OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION=BASE2_EXPONENTIAL_BUCKET_HISTOGRAM. If using configuring OTLP programatically, use Otlp*MetricExporterBuilder#setDefaultAggregationSelector(DefaultAggregationSelector).
  • The metrics SDK undergone significant internal refactoring which results in reduced complexity and significantly reduced memory allocation during metric collection / export.

API

Logs

  • WARNING: Split out Event API from Log API. Event API is now published in opentelemetry-api-events. API / SDK usage has also changed - see PR for details. (#5049)

SDK

  • Add shutdown / close to OpenTelemetrySdk (#5100)

Metrics

  • Base2 exponential histogram aggregations are now stable. Add base2ExponentialBucketHistogram() to Aggregation. (#5143)
  • Promote exponential histogram data interfaces to stable package (#5120)
  • Add Base2 prefix to internal exponential histogram classes (#5179)
  • Add MaxScale config parameter to Base2ExponentialBucketHistogram (#5044)
  • Add close method to MetricReader (#5109)
  • Reuse AggregatorHandle with cumulative temporality to reduce allocations (#5142)
  • Delete notion of accumulation to reduce allocations (#5154)
  • Delete bound instruments (#5157)
  • Reuse aggregation handles for delta temporality to reduce allocations (#5176)

Exporter

  • Add proper shutdown implementations for all exporters (#5113)

SDK Extensions

  • WARNING: Remove deprecated autoconfigure exemplar filter names. Previous names none, all , with_sampled_trace have been removed. Use always_off, always_on, trace_based instead. (#5098)
  • Add autoconfigure support for "none" option for propagator value (#5121)
  • Add autoconfigure support for parentbased_jaeger_remote sampler (#5123)
  • Autoconfigure closes up autoconfigured resources in case of exception (#5117)
  • View file based config has switched from snakeyaml to snakeyaml-engine for YAML parsing. (#5138)
  • Fix autoconfigure resource providers property docs (#5135)

Testing

  • WARNING: Merge opentelemetry-sdk-metrics-testing into opentelemetry-sdk-testing. Stop publishing opentelemetry-sdk-metrics-testing. (#5144)
  • Sort spans by start time (parents before children as tiebreaker) to avoid common causes for flaky tests (#5026)
  • Add resource assertion methods to SpanDataAssert and MetricAssert (#5160)

Semantic Conventions

OpenTracing Shim

  • Refactor to remove internal objects BaseShimObject and TelemetryInfo (#5087)
  • WARNING: Minimize public surface area of OpenTracingShim. Remove createTracerShim() , createTracerShim(Tracer), createTracerShim(Tracer, OpenTracingPropagators). Add createTracerShim(TracerProvder,TextMapPropagator,TextMapPropagator). (#5110)

Project tooling

  • Add OWASP dependency check (#5177)

🙇 Thank you

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

@anuraaga
@bcmedeiros
@breedx-splk
@carlosalberto
@Donnerbart
@fsalvini
@ilteristabak
@jack-berg
@jkwatson
@mateuszrzeszutek
@rapphil
@stnor
@tigrannajaryan
@trask
@zeitlinger

Version 1.22.0

06 Jan 15:16
fbeb0d8
Compare
Choose a tag to compare

API

  • WARNING: GlobalOpenTelemetry trigger of autoconfiguration is now opt-in. Previously, GlobalOpenTelemetry.get triggered autoconfiguration if opentelemetry-sdk-extension-autoconfigure was detected on the classpath. That behavior is now opt-in by setting environment variable OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED=true. (#5010)
  • Update LoggerBuilder, MeterBuilder, TracerBuilder javadoc (#5050)

Context

  • Make closing scope idempotent and non-operational when corresponding context is not current. (#5061)

SDK

  • Standardize internal usage of ConfigUtil for reading environment variables and system properties (#5048)

Metrics

  • Lazily initialize exponential histogram buckets (#5023)
  • Delete MapCounter alternative exponential histogram implementation (#5047)
  • Add toString to SdkMeter, SdkObservableInstrument, AbstractInstrumentBuilder (#5072)

Exporter

  • OtlpGrpcSpanExporter, OtlpHttpSpanExporter, OtlpGrpcLogRecordExporter, OtlpHttpLogRecordExporter, ZipkinSpanExporter, and JaegerGrpcSpanExporter are now instrumented with GlobalOpenTelemetry by default. Instrumentation initializes lazily to prevent ordering issue of accessing GlobalOpenTelemetry.get before GlobalOpenTelemetry.set is called. (#4993)
  • Add ConfigurableSpanExporterProvider implementation for JaegerGrpcSpanExporter (#5002)
  • Add ConfigurableSpanExporterProvider, ConfigurableMetricExporterProvider, ConfigurableLogRecordExporterProvider for OtlpGrpc{Signal}Exporters and OtlpHttp{SignalExporters (#5003)
  • Replace OTLP User-Agent spaces with dashes (#5080)
  • Add AutoConfigurationCustomizerProvider implementation for PrometheusHttpServer (#5053)
  • Add resource target_info and scope target_info metrics to PrometheusHttpServer in compliance with spec (#5039)
  • Drop delta metrics in PrometheusHttpServer (#5062)
  • PrometheusHttpServer drops metrics with same name and different type (#5078)

SDK Extensions

  • DEPRECATION: Align autoconfigure exemplar filter names with spec. Previous names none, all, with_sampled_trace are deprecated. Use always_off, always_on, trace_based instead. (#5063)

OpenTracing Shim

  • Add createTracerShim function (#4988)

🙇 Thank you

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

@amouhadi
@brunobat
@carlosalberto
@cuichenli
@dashpole
@deejgregor
@jack-berg
@jkwatson
@lmolkova
@mateuszrzeszutek
@Oberon00
@RajatArora08
@trask
@vasireddy99
@yangtaoran

Version 1.21.0

09 Dec 20:02
7105876
Compare
Choose a tag to compare

API

API Extensions

  • WARNING: opentelemetry-extension-aws has been removed following its relocation to opentelemetry-java-contrib/aws-xray-propagator, which is published under coordinates io.opentelemetry.contrib:opentelemetry-aws-xray-propagator:{version}. We will push security patches to 1.20.x as needed. The latest opentelemetry-bom will point to the latest published version, currently 1.20.1. (#4945)
  • Add toString implementation to various propagator components (#4996)

SDK

Logs

  • Add toString implementation to various log SDK components (#4979)

Metrics

  • Add histogram collection benchmark (#4912)
  • Add ExponentialHistogramIndexerBenchmark (#4989)
  • Stop extra copy of exponential histogram buckets (#5020)

Exporter

  • Zipkin exporter serializes EventData attributes as JSON (#4934)
  • Add support for EC mTLS keys (applies to OtlpHttp{Signal}Exporter, OtlpGrpc{Signal}Exporter, JaegerGrpcSpanExporter, JaegerRemoteSampler) (#4920)
  • Add Configurable{Signal}ExporterProvider implementations for Logging{Signal}Exporters (#4950)
  • Add ConfigurableSpanExporterProvider implementation for ZipkinSpanExporter (#4991)
  • Add Configurable{Signal}ExporterProvider implementations for OtlpJsonLogging{Signal}Exporters (#4992)
  • ZipkinSpanExporter populates remoteEndpoint (#4933)

SDK Extensions

  • BREAKING: Remove support for otel.experimental.sdk.enabled from autoconfigure (#4973)
  • De-singleton ZPageServer implementation (#4935)
  • Add auto-configure support for logging-otlp exporters (#4879)
  • Move DefaultConfigProperties to internal package in opentelemetry-sdk-extension-autoconfigure-spi (#5001)

Testing

  • Make APIs for asserting attributes consistent (#4882)
  • Attribute assertions error messages always contain the attr key (#5027)

Semantic Conventions

  • Update semantic and resource attributes for spec v0.16.0 (#4938, #5033)

OpenTracing Shim

  • Handle unsupported types when setting Attributes (#4939)
  • Properly set the status based on the error tag (#4962)
  • Handle io.opentracing.noop.NoopSpan correctly (#4968)
  • Log invalid arguments rather than throwing exceptions. (#5012)
  • Stop mapping semconv values from OpenTracing to OTel. (#5016)

🙇 Thank you

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

@ben-roling
@breedx-splk
@carlosalberto
@giraone
@jack-berg
@jkwatson
@jonatan-ivanov
@knutwannheden
@lmonkiewicz
@mateuszrzeszutek
@mattspataro
@sno544
@sriraamas
@tmccombs
@trask
@yunchen-myob