From e9b66ee8acb4ba75fbd4618a03c129ff5c87c2cc Mon Sep 17 00:00:00 2001 From: Jack Berg <34418638+jack-berg@users.noreply.github.com> Date: Thu, 8 Oct 2026 16:18:18 -0500 Subject: [PATCH 1/2] Add since annotations --- .../otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java | 6 +++++- .../otlp/http/metrics/OtlpHttpMetricExporterBuilder.java | 6 +++++- .../otlp/http/trace/OtlpHttpSpanExporterBuilder.java | 6 +++++- .../otlp/logs/OtlpGrpcLogRecordExporterBuilder.java | 6 +++++- .../otlp/metrics/OtlpGrpcMetricExporterBuilder.java | 6 +++++- .../exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java | 6 +++++- .../autoconfigure/ServiceInstanceIdResourceProvider.java | 2 ++ .../src/main/java/io/opentelemetry/sdk/metrics/View.java | 2 ++ .../sdk/metrics/export/PeriodicMetricReaderBuilder.java | 1 + 9 files changed, 35 insertions(+), 6 deletions(-) diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java index e3b4cd0a5a2..3f6d4bcc4a1 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/logs/OtlpHttpLogRecordExporterBuilder.java @@ -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); diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java index ab983ca29c8..1a97f842d47 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/metrics/OtlpHttpMetricExporterBuilder.java @@ -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); diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java index cc6a101b36c..96e51d57119 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/http/trace/OtlpHttpSpanExporterBuilder.java @@ -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); diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java index 9bc2deafa6d..a74d994adaf 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/logs/OtlpGrpcLogRecordExporterBuilder.java @@ -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"); diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java index a8e799c0586..a300051d9d8 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/metrics/OtlpGrpcMetricExporterBuilder.java @@ -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); diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java index 3f4a52a07a8..873c1d4d3b4 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/trace/OtlpGrpcSpanExporterBuilder.java @@ -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); diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ServiceInstanceIdResourceProvider.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ServiceInstanceIdResourceProvider.java index 461cfcd3b5f..43de8f4fd53 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ServiceInstanceIdResourceProvider.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/ServiceInstanceIdResourceProvider.java @@ -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 { diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/View.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/View.java index e5c39b0ad56..ada250561d6 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/View.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/View.java @@ -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 getAttributeFilter(); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/export/PeriodicMetricReaderBuilder.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/export/PeriodicMetricReaderBuilder.java index be48031b914..a9cb134b888 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/export/PeriodicMetricReaderBuilder.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/export/PeriodicMetricReaderBuilder.java @@ -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"); From 61b143da6b3b315ddb0783707421867249154ebd Mon Sep 17 00:00:00 2001 From: Jack Berg <34418638+jack-berg@users.noreply.github.com> Date: Thu, 8 Oct 2026 16:34:47 -0500 Subject: [PATCH 2/2] Prepare changelog for 1.67.0 --- CHANGELOG.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66bf947bf05..f618461fd18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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