diff --git a/CHANGELOG.md b/CHANGELOG.md index e785579b02c..2e95ba7035f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,48 @@ ## Unreleased +### API + +#### Incubator + +* BREAKING: Refactor ExtendedTracer, ExtendedSpanBuilder to reflect incubating API conventions + ([#6497](https://github.com/open-telemetry/opentelemetry-java/pull/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](https://github.com/open-telemetry/opentelemetry-java/blob/main/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/PrometheusHttpServerTest.java#L251-L259). + ([#6476](https://github.com/open-telemetry/opentelemetry-java/pull/6476)) +* Make OTLP exporter memory mode API public + ([#6469](https://github.com/open-telemetry/opentelemetry-java/pull/6469)) +* Speed up OTLP string marshaling using sun.misc.Unsafe + ([#6433](https://github.com/open-telemetry/opentelemetry-java/pull/6433)) +* Add exporter data classes for experimental profiling signal type. + ([#6374](https://github.com/open-telemetry/opentelemetry-java/pull/6374)) +* Start prometheus http server with daemon thread + ([#6472](https://github.com/open-telemetry/opentelemetry-java/pull/6472)) +* Update the Prometheus metrics library and improve how units are included in metric names. + ([#6473](https://github.com/open-telemetry/opentelemetry-java/pull/6473)) +* Remove android animalsniffer check from prometheus exporter + ([#6478](https://github.com/open-telemetry/opentelemetry-java/pull/6478)) + +#### Extensions + +* Load file config YAML using core schema, ensure that env var substitution retains string types. + ([#6436](https://github.com/open-telemetry/opentelemetry-java/pull/6436)) +* Define dedicated file configuration SPI ComponentProvider + ([#6457](https://github.com/open-telemetry/opentelemetry-java/pull/6457)) + +### Tooling + +* Normalize timestamps and file ordering in jars, making the outputs reproducible + ([#6471](https://github.com/open-telemetry/opentelemetry-java/pull/6471)) +* GHA for generating the post-release pull request + ([#6449](https://github.com/open-telemetry/opentelemetry-java/pull/6449)) + ## Version 1.38.0 (2024-05-10) ### API 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 a2db5890439..364be52a6b3 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 @@ -213,8 +213,10 @@ public OtlpHttpLogRecordExporterBuilder setMeterProvider( /** * Set the {@link MemoryMode}. If unset, defaults to {@link #DEFAULT_MEMORY_MODE}. * - *
>When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce + *
When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce * memory allocation. + * + * @since 1.39.0 */ public OtlpHttpLogRecordExporterBuilder setMemoryMode(MemoryMode memoryMode) { requireNonNull(memoryMode, "memoryMode"); 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 7046f65ebb1..539df4430be 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 @@ -236,13 +236,15 @@ public OtlpHttpMetricExporterBuilder setProxyOptions(ProxyOptions proxyOptions) /** * Set the {@link MemoryMode}. If unset, defaults to {@link #DEFAULT_MEMORY_MODE}. * - *
>When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce + *
When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce * memory allocation. Additionally, the value is used for {@link MetricExporter#getMemoryMode()}, * which sends a signal to the metrics SDK to reuse memory when possible. This is safe and * desirable for most use cases, but should be used with caution of wrapping and delegating to the * exporter. It is not safe for the wrapping exporter to hold onto references to {@link * MetricData} batches since the same data structures will be reused in subsequent calls to {@link * MetricExporter#export(Collection)}. + * + * @since 1.39.0 */ public OtlpHttpMetricExporterBuilder setMemoryMode(MemoryMode memoryMode) { requireNonNull(memoryMode, "memoryMode"); 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 db54626fc70..a05735ae092 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 @@ -214,8 +214,10 @@ public OtlpHttpSpanExporterBuilder setMeterProvider( /** * Set the {@link MemoryMode}. If unset, defaults to {@link #DEFAULT_MEMORY_MODE}. * - *
>When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce + *
When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce * memory allocation. + * + * @since 1.39.0 */ public OtlpHttpSpanExporterBuilder setMemoryMode(MemoryMode memoryMode) { requireNonNull(memoryMode, "memoryMode"); 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 3131ae16ff0..0889105f7f7 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 @@ -246,8 +246,10 @@ public OtlpGrpcLogRecordExporterBuilder setMeterProvider( /** * Set the {@link MemoryMode}. If unset, defaults to {@link #DEFAULT_MEMORY_MODE}. * - *
>When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce + *
When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce * memory allocation. + * + * @since 1.39.0 */ public OtlpGrpcLogRecordExporterBuilder setMemoryMode(MemoryMode memoryMode) { requireNonNull(memoryMode, "memoryMode"); 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 34887f7f267..51282d574f7 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 @@ -269,13 +269,15 @@ public OtlpGrpcMetricExporterBuilder setRetryPolicy(RetryPolicy retryPolicy) { /** * Set the {@link MemoryMode}. If unset, defaults to {@link #DEFAULT_MEMORY_MODE}. * - *
>When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce + *
When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce * memory allocation. Additionally, the value is used for {@link MetricExporter#getMemoryMode()}, * which sends a signal to the metrics SDK to reuse memory when possible. This is safe and * desirable for most use cases, but should be used with caution of wrapping and delegating to the * exporter. It is not safe for the wrapping exporter to hold onto references to {@link * MetricData} batches since the same data structures will be reused in subsequent calls to {@link * MetricExporter#export(Collection)}. + * + * @since 1.39.0 */ public OtlpGrpcMetricExporterBuilder setMemoryMode(MemoryMode memoryMode) { requireNonNull(memoryMode, "memoryMode"); 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 004c61021ad..c2c631fd04a 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 @@ -243,8 +243,10 @@ public OtlpGrpcSpanExporterBuilder setMeterProvider( /** * Set the {@link MemoryMode}. If unset, defaults to {@link #DEFAULT_MEMORY_MODE}. * - *
>When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce + *
When memory mode is {@link MemoryMode#REUSABLE_DATA}, serialization is optimized to reduce * memory allocation. + * + * @since 1.39.0 */ public OtlpGrpcSpanExporterBuilder setMemoryMode(MemoryMode memoryMode) { requireNonNull(memoryMode, "memoryMode"); diff --git a/exporters/otlp/profiles/build.gradle.kts b/exporters/otlp/profiles/build.gradle.kts index 8b22581662f..a24e2a82739 100644 --- a/exporters/otlp/profiles/build.gradle.kts +++ b/exporters/otlp/profiles/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("otel.java-conventions") - id("otel.publish-conventions") + // TODO (jack-berg): uncomment when ready to publish + // id("otel.publish-conventions") id("otel.animalsniffer-conventions") }