Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,120 @@

## Unreleased

### API

* Deprecate `TextMapGetter.keys()` and make `TextMapGetter` a functional interface
([#8531](https://github.com/open-telemetry/opentelemetry-java/pull/8531))
* Add null guards and API usage logging for tracing, baggage, attributes, logging, and metrics
([#8803](https://github.com/open-telemetry/opentelemetry-java/pull/8803), [#8863](https://github.com/open-telemetry/opentelemetry-java/pull/8863), [#8864](https://github.com/open-telemetry/opentelemetry-java/pull/8864))
* Bound allocations and avoid regex backtracking when parsing W3C `tracestate`
([#8817](https://github.com/open-telemetry/opentelemetry-java/pull/8817), [#8914](https://github.com/open-telemetry/opentelemetry-java/pull/8914))

#### Incubating

* Add type introspection methods to `DeclarativeConfigProperties`
([#8883](https://github.com/open-telemetry/opentelemetry-java/pull/8883))

#### Extensions

* Trace propagators: Bound allocations when parsing Jaeger baggage and B3 single-header propagation
([#8817](https://github.com/open-telemetry/opentelemetry-java/pull/8817))

### SDK

* Run `CompletableResultCode` completion actions outside internal locks to avoid deadlocks
([#8773](https://github.com/open-telemetry/opentelemetry-java/pull/8773))
* Do not count attribute overwrites as dropped attributes
([#8833](https://github.com/open-telemetry/opentelemetry-java/pull/8833))
* Avoid regex backtracking in glob matching
([#8909](https://github.com/open-telemetry/opentelemetry-java/pull/8909))
* Add experimental resource entity support, OTLP export, and configuration through `otel.entities`
and declarative resource detectors
([#8464](https://github.com/open-telemetry/opentelemetry-java/pull/8464))

#### Traces

* Return noop tracers when no span processors are configured
([#8815](https://github.com/open-telemetry/opentelemetry-java/pull/8815))
* Catch `Throwable` in `SimpleSpanProcessor` and `MultiSpanExporter`
([#8848](https://github.com/open-telemetry/opentelemetry-java/pull/8848))
* Use `{span}` units for span processor self-observability metrics
([#8873](https://github.com/open-telemetry/opentelemetry-java/pull/8873))

#### Metrics

* Stabilize `PeriodicMetricReaderBuilder.setMaxExportBatchSize(int)`
([#8829](https://github.com/open-telemetry/opentelemetry-java/pull/8829))
* Delete experimental metric attribute / baggage processing
([#8818](https://github.com/open-telemetry/opentelemetry-java/pull/8818))
* Fix: Reset exemplar span context when a reservoir cell is overwritten outside a span
([#8871](https://github.com/open-telemetry/opentelemetry-java/pull/8871))

#### Logs

* Return noop loggers from `SdkLoggerProvider.get()` when no log record processors are configured
([#8838](https://github.com/open-telemetry/opentelemetry-java/pull/8838))
* Catch `Throwable` in `SimpleLogRecordProcessor` and `MultiLogRecordExporter`
([#8848](https://github.com/open-telemetry/opentelemetry-java/pull/8848))

#### Profiles

* Fix `KeyValueAndUnitData.create()` to return the public `KeyValueAndUnitData` interface
([#8875](https://github.com/open-telemetry/opentelemetry-java/pull/8875))

#### Exporters

* OTLP: Fix missing request size limits, defaulting to 64 MiB, configurable through
`setMaxRequestBodySize(long)` and `setMaxRequestMessageSize(long)` and through declarative config
`OtlpGrpcExporter`, `OtlpHttpExporter` (see full schema docs [here](https://opentelemetry.io/docs/specs/otel-config/types/#type-otlpgrpcexporter))
([#8446](https://github.com/open-telemetry/opentelemetry-java/pull/8446))
* OTLP: Reduce failure logs to `FINE` after shutdown
([#8819](https://github.com/open-telemetry/opentelemetry-java/pull/8819))
* OTLP: retry gRPC based on response status codes in trailer headers
([#8854](https://github.com/open-telemetry/opentelemetry-java/pull/8854))
* Prometheus: Avoid regex backtracking when removing unit annotations
([#8910](https://github.com/open-telemetry/opentelemetry-java/pull/8910))

#### Extensions

* Autoconfigure: Stabilize `ServiceInstanceIdResourceProvider` and generate `service.instance.id` by default
([#8770](https://github.com/open-telemetry/opentelemetry-java/pull/8770))
* Autoconfigure: Preserve unencoded non-ASCII characters when decoding resource attributes
([#8893](https://github.com/open-telemetry/opentelemetry-java/pull/8893))
* Autoconfigure: Add missing artifact hints for `experimental-otlp/stdout` span and metric exporters
([#8897](https://github.com/open-telemetry/opentelemetry-java/pull/8897))
* Declarative config: Update to schema v1.2.0 and support the `always_record` sampler
([#8801](https://github.com/open-telemetry/opentelemetry-java/pull/8801))
* Declarative config: Ignore resource attributes with null values
([#8889](https://github.com/open-telemetry/opentelemetry-java/pull/8889))
* Declarative config: Match array attributes element-wise in the `rule_based` sampler
([#8895](https://github.com/open-telemetry/opentelemetry-java/pull/8895))
* Jaeger remote sampler: Reduce failure logs to `FINE` after shutdown
([#8819](https://github.com/open-telemetry/opentelemetry-java/pull/8819))
* Jaeger remote sampler: Preserve per-operation sampling strategies when the rate limit is zero
([#8888](https://github.com/open-telemetry/opentelemetry-java/pull/8888))
* Incubator: Make `OnEndSpanProcessor.create()` public
([#8892](https://github.com/open-telemetry/opentelemetry-java/pull/8892))
* Incubator: Fix the class name in `ComposableProbabilitySampler` descriptions
([#8891](https://github.com/open-telemetry/opentelemetry-java/pull/8891))

#### Testing

* Fix assertion failure messages reporting the wrong value or type
([#8872](https://github.com/open-telemetry/opentelemetry-java/pull/8872))

### Shims

* OpenCensus: Skip W3C multi-tenant `tracestate` keys when converting spans
([#8810](https://github.com/open-telemetry/opentelemetry-java/pull/8810))
* OpenTracing: Propagate baggage to the parent context in `SpanBuilderShim`
([#8812](https://github.com/open-telemetry/opentelemetry-java/pull/8812))

### Project tooling

* Kotlin extension: Raise the minimum Kotlin version to 2.2
([#8804](https://github.com/open-telemetry/opentelemetry-java/pull/8804))

## Version 1.66.0 (2026-09-11)

### API
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ public OtlpHttpLogRecordExporterBuilder setConnectTimeout(Duration timeout) {
return this;
}

/** Sets the maximum OTLP HTTP request body size in bytes. If unset, defaults to 64 MiB. */
/**
* Sets the maximum OTLP HTTP request body size in bytes. If unset, defaults to 64 MiB.
*
* @since 1.67.0
*/
public OtlpHttpLogRecordExporterBuilder setMaxRequestBodySize(long maxRequestBodySizeBytes) {
checkArgument(maxRequestBodySizeBytes > 0, "maxRequestBodySizeBytes must be positive");
delegate.setMaxRequestBodySize(maxRequestBodySizeBytes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,11 @@ public OtlpHttpMetricExporterBuilder setConnectTimeout(Duration timeout) {
return this;
}

/** Sets the maximum OTLP HTTP request body size in bytes. If unset, defaults to 64 MiB. */
/**
* Sets the maximum OTLP HTTP request body size in bytes. If unset, defaults to 64 MiB.
*
* @since 1.67.0
*/
public OtlpHttpMetricExporterBuilder setMaxRequestBodySize(long maxRequestBodySizeBytes) {
checkArgument(maxRequestBodySizeBytes > 0, "maxRequestBodySizeBytes must be positive");
delegate.setMaxRequestBodySize(maxRequestBodySizeBytes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ public OtlpHttpSpanExporterBuilder setConnectTimeout(Duration timeout) {
return this;
}

/** Sets the maximum OTLP HTTP request body size in bytes. If unset, defaults to 64 MiB. */
/**
* Sets the maximum OTLP HTTP request body size in bytes. If unset, defaults to 64 MiB.
*
* @since 1.67.0
*/
public OtlpHttpSpanExporterBuilder setMaxRequestBodySize(long maxRequestBodySizeBytes) {
checkArgument(maxRequestBodySizeBytes > 0, "maxRequestBodySizeBytes must be positive");
delegate.setMaxRequestBodySize(maxRequestBodySizeBytes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,11 @@ public OtlpGrpcLogRecordExporterBuilder setConnectTimeout(Duration timeout) {
return this;
}

/** Sets the maximum OTLP gRPC request message size in bytes. If unset, defaults to 64 MiB. */
/**
* Sets the maximum OTLP gRPC request message size in bytes. If unset, defaults to 64 MiB.
*
* @since 1.67.0
*/
public OtlpGrpcLogRecordExporterBuilder setMaxRequestMessageSize(
long maxRequestMessageSizeBytes) {
checkArgument(maxRequestMessageSizeBytes > 0, "maxRequestMessageSizeBytes must be positive");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,11 @@ public OtlpGrpcMetricExporterBuilder setConnectTimeout(Duration timeout) {
return this;
}

/** Sets the maximum OTLP gRPC request message size in bytes. If unset, defaults to 64 MiB. */
/**
* Sets the maximum OTLP gRPC request message size in bytes. If unset, defaults to 64 MiB.
*
* @since 1.67.0
*/
public OtlpGrpcMetricExporterBuilder setMaxRequestMessageSize(long maxRequestMessageSizeBytes) {
checkArgument(maxRequestMessageSizeBytes > 0, "maxRequestMessageSizeBytes must be positive");
delegate.setMaxRequestMessageSize(maxRequestMessageSizeBytes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,11 @@ public OtlpGrpcSpanExporterBuilder setConnectTimeout(Duration timeout) {
return this;
}

/** Sets the maximum OTLP gRPC request message size in bytes. If unset, defaults to 64 MiB. */
/**
* Sets the maximum OTLP gRPC request message size in bytes. If unset, defaults to 64 MiB.
*
* @since 1.67.0
*/
public OtlpGrpcSpanExporterBuilder setMaxRequestMessageSize(long maxRequestMessageSizeBytes) {
checkArgument(maxRequestMessageSizeBytes > 0, "maxRequestMessageSizeBytes must be positive");
delegate.setMaxRequestMessageSize(maxRequestMessageSizeBytes);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
* {@code service.instance.id}, stable for the lifetime of the JVM. Runs at {@link
* Integer#MIN_VALUE} so that any other {@link ResourceProvider} or user configuration which sets
* {@code service.instance.id} takes precedence.
*
* @since 1.67.0
*/
public final class ServiceInstanceIdResourceProvider implements ResourceProvider {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ static View create(
/**
* Returns the attribute key filter for this view. Attribute keys for which the predicate returns
* {@code false} are dropped from recorded measurements.
*
* @since 1.67.0
*/
public abstract Predicate<String> getAttributeFilter();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public PeriodicMetricReaderBuilder setExecutor(ScheduledExecutorService executor
*
* @param maxExportBatchSize The maximum number of data points to include in a single export
* batch.
* @since 1.67.0
*/
public PeriodicMetricReaderBuilder setMaxExportBatchSize(int maxExportBatchSize) {
checkArgument(maxExportBatchSize > 0, "maxExportBatchSize must be positive");
Expand Down
Loading