diff --git a/.github/scripts/draft-change-log-entries.sh b/.github/scripts/draft-change-log-entries.sh index d62f210bfe9..81fff2e3cb1 100755 --- a/.github/scripts/draft-change-log-entries.sh +++ b/.github/scripts/draft-change-log-entries.sh @@ -29,6 +29,6 @@ echo git log --reverse \ --perl-regexp \ --author='^(?!dependabot\[bot\] )' \ - --pretty=format:"- %s" \ + --pretty=format:"* %s" \ "$range" \ | sed -E 's,\(#([0-9]+)\)$,\n ([#\1](https://github.com/open-telemetry/opentelemetry-java/pull/\1)),' diff --git a/CHANGELOG.md b/CHANGELOG.md index 79cd8508c2b..101ba009e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,89 @@ ## Unreleased +### API + +### API Extensions + +* WARNING: `opentelemetry-extension-aws` has been removed following its relocation + to [opentelemetry-java-contrib/aws-xray-propagator](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/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](https://github.com/open-telemetry/opentelemetry-java/pull/4945)) +* Add toString implementation to various propagator components + ([#4996](https://github.com/open-telemetry/opentelemetry-java/pull/4996)) + +### SDK + +#### Logs + +* Add toString implementation to various log SDK components + ([#4979](https://github.com/open-telemetry/opentelemetry-java/pull/4979)) + +#### Metrics + +* Add histogram collection benchmark + ([#4912](https://github.com/open-telemetry/opentelemetry-java/pull/4912)) +* Add ExponentialHistogramIndexerBenchmark + ([#4989](https://github.com/open-telemetry/opentelemetry-java/pull/4989)) +* Stop extra copy of exponential histogram buckets + ([#5020](https://github.com/open-telemetry/opentelemetry-java/pull/5020)) + +#### Exporter + +* Zipkin exporter serializes EventData attributes as JSON + ([#4934](https://github.com/open-telemetry/opentelemetry-java/pull/4934)) +* Add support for EC mTLS keys (applies to `OtlpHttp{Signal}Exporter`, `OtlpGrpc{Signal}Exporter`, + `JaegerGrpcSpanExporter`, `JaegerRemoteSampler`) + ([#4920](https://github.com/open-telemetry/opentelemetry-java/pull/4920)) +* Add `Configurable{Signal}ExporterProvider` implementations for `Logging{Signal}Exporter`s + ([#4950](https://github.com/open-telemetry/opentelemetry-java/pull/4950)) +* Add `ConfigurableSpanExporterProvider` implementation for `ZipkinSpanExporter` + ([#4991](https://github.com/open-telemetry/opentelemetry-java/pull/4991)) +* Add `Configurable{Signal}ExporterProvider` implementations for `OtlpJsonLogging{Signal}Exporter`s + ([#4992](https://github.com/open-telemetry/opentelemetry-java/pull/4992)) +* `ZipkinSpanExporter` populates remoteEndpoint + ([#4933](https://github.com/open-telemetry/opentelemetry-java/pull/4933)) + +#### SDK Extensions + +* BREAKING: Remove support for otel.experimental.sdk.enabled from autoconfigure + ([#4973](https://github.com/open-telemetry/opentelemetry-java/pull/4973)) +* De-singleton ZPageServer implementation + ([#4935](https://github.com/open-telemetry/opentelemetry-java/pull/4935)) +* Add auto-configure support for logging-otlp exporters + ([#4879](https://github.com/open-telemetry/opentelemetry-java/pull/4879)) +* Move DefaultConfigProperties to internal package in `opentelemetry-sdk-extension-autoconfigure-spi` + ([#5001](https://github.com/open-telemetry/opentelemetry-java/pull/5001)) + +#### Testing + +* Make APIs for asserting attributes consistent + ([#4882](https://github.com/open-telemetry/opentelemetry-java/pull/4882)) +* Attribute assertions error messages always contain the attr key + ([#5027](https://github.com/open-telemetry/opentelemetry-java/pull/5027)) + +### Semantic Conventions + +* Update semantic and resource attributes for spec v0.16.0 + ([#4938](https://github.com/open-telemetry/opentelemetry-java/pull/4938), + [#5033](https://github.com/open-telemetry/opentelemetry-java/pull/5033)) + +### OpenTracing Shim + +* Handle unsupported types when setting Attributes + ([#4939](https://github.com/open-telemetry/opentelemetry-java/pull/4939)) +* Properly set the status based on the error tag + ([#4962](https://github.com/open-telemetry/opentelemetry-java/pull/4962)) +* Handle `io.opentracing.noop.NoopSpan` correctly + ([#4968](https://github.com/open-telemetry/opentelemetry-java/pull/4968)) +* Log invalid arguments rather than throwing exceptions. + ([#5012](https://github.com/open-telemetry/opentelemetry-java/pull/5012)) +* Stop mapping semconv values from OpenTracing to OTel. + ([#5016](https://github.com/open-telemetry/opentelemetry-java/pull/5016)) + ## Version 1.20.1 (2022-11-15) ### Bugfixes diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts index 72e53b6b24a..ae50cabc349 100644 --- a/bom/build.gradle.kts +++ b/bom/build.gradle.kts @@ -13,4 +13,4 @@ otelBom.addFallback("opentelemetry-exporter-jaeger-proto", "1.17.0") otelBom.addFallback("opentelemetry-extension-annotations", "1.18.0") otelBom.addFallback("opentelemetry-sdk-extension-resources", "1.19.0") otelBom.addFallback("opentelemetry-sdk-extension-aws", "1.19.0") -otelBom.addFallback("opentelemetry-extension-aws", "1.20.0") +otelBom.addFallback("opentelemetry-extension-aws", "1.20.1") diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AbstractPointAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AbstractPointAssert.java index 80c70416e61..cf7454c0405 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AbstractPointAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AbstractPointAssert.java @@ -115,6 +115,8 @@ public final PointAssertT hasAttributesSatisfying(Iterable a * Asserts the point has attributes matching all {@code assertions} and no more. Assertions can be * created using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public final PointAssertT hasAttributesSatisfyingExactly(AttributeAssertion... assertions) { return hasAttributesSatisfyingExactly(Arrays.asList(assertions)); @@ -124,6 +126,8 @@ public final PointAssertT hasAttributesSatisfyingExactly(AttributeAssertion... a * Asserts the point has attributes matching all {@code assertions} and no more. Assertions can be * created using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public final PointAssertT hasAttributesSatisfyingExactly( Iterable assertions) { diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/DoubleExemplarAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/DoubleExemplarAssert.java index fea4d74eb26..b40fc005c63 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/DoubleExemplarAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/DoubleExemplarAssert.java @@ -121,6 +121,8 @@ public DoubleExemplarAssert hasFilteredAttributesSatisfying( * Asserts the exemplar has filtered attributes matching all {@code assertions} and no more. * Assertions can be created using methods like {@link * OpenTelemetryAssertions#satisfies(AttributeKey, OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public DoubleExemplarAssert hasFilteredAttributesSatisfyingExactly( AttributeAssertion... assertions) { @@ -131,6 +133,8 @@ public DoubleExemplarAssert hasFilteredAttributesSatisfyingExactly( * Asserts the exemplar has filtered attributes matching all {@code assertions} and no more. * Assertions can be created using methods like {@link * OpenTelemetryAssertions#satisfies(AttributeKey, OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public DoubleExemplarAssert hasFilteredAttributesSatisfyingExactly( Iterable assertions) { diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/EventDataAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/EventDataAssert.java index d232a8360e9..f0f280dd9a3 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/EventDataAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/EventDataAssert.java @@ -89,6 +89,8 @@ public EventDataAssert hasAttributesSatisfying(Consumer attributes) * Asserts the event has attributes matching all {@code assertions}. Assertions can be created * using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public EventDataAssert hasAttributesSatisfying(AttributeAssertion... assertions) { return hasAttributesSatisfying(Arrays.asList(assertions)); @@ -98,6 +100,8 @@ public EventDataAssert hasAttributesSatisfying(AttributeAssertion... assertions) * Asserts the event has attributes matching all {@code assertions}. Assertions can be created * using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public EventDataAssert hasAttributesSatisfying(Iterable assertions) { AssertUtil.assertAttributes(actual.getAttributes(), assertions); @@ -108,6 +112,8 @@ public EventDataAssert hasAttributesSatisfying(Iterable asse * Asserts the event has attributes matching all {@code assertions} and no more. Assertions can be * created using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public EventDataAssert hasAttributesSatisfyingExactly(AttributeAssertion... assertions) { return hasAttributesSatisfyingExactly(Arrays.asList(assertions)); @@ -117,6 +123,8 @@ public EventDataAssert hasAttributesSatisfyingExactly(AttributeAssertion... asse * Asserts the event has attributes matching all {@code assertions} and no more. Assertions can be * created using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public EventDataAssert hasAttributesSatisfyingExactly(Iterable assertions) { AssertUtil.assertAttributesExactly(actual.getAttributes(), assertions); diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/LongExemplarAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/LongExemplarAssert.java index 6fa6659c796..9e93250544e 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/LongExemplarAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/LongExemplarAssert.java @@ -120,6 +120,8 @@ public LongExemplarAssert hasFilteredAttributesSatisfying( * Asserts the exemplar has filtered attributes matching all {@code assertions} and no more. * Assertions can be created using methods like {@link * OpenTelemetryAssertions#satisfies(AttributeKey, OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public LongExemplarAssert hasFilteredAttributesSatisfyingExactly( AttributeAssertion... assertions) { @@ -130,6 +132,8 @@ public LongExemplarAssert hasFilteredAttributesSatisfyingExactly( * Asserts the exemplar has filtered attributes matching all {@code assertions} and no more. * Assertions can be created using methods like {@link * OpenTelemetryAssertions#satisfies(AttributeKey, OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public LongExemplarAssert hasFilteredAttributesSatisfyingExactly( Iterable assertions) { diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java index bde4d9cd27c..fec6b631d16 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java @@ -310,6 +310,8 @@ public SpanDataAssert hasAttributesSatisfying(Consumer attributes) { * Asserts the event has attributes matching all {@code assertions}. Assertions can be created * using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public SpanDataAssert hasAttributesSatisfying(AttributeAssertion... assertions) { return hasAttributesSatisfying(Arrays.asList(assertions)); @@ -319,6 +321,8 @@ public SpanDataAssert hasAttributesSatisfying(AttributeAssertion... assertions) * Asserts the event has attributes matching all {@code assertions}. Assertions can be created * using methods like {@link OpenTelemetryAssertions#satisfies(AttributeKey, * OpenTelemetryAssertions.LongAssertConsumer)}. + * + * @since 1.21.0 */ public SpanDataAssert hasAttributesSatisfying(Iterable assertions) { AssertUtil.assertAttributes(