From 46e84e58e554f7c8181efb57e21d76238432094d Mon Sep 17 00:00:00 2001 From: Egor Fatyushin Date: Thu, 27 Feb 2025 17:28:48 +0000 Subject: [PATCH 01/17] Add AgentForTestingTest.exportAndRetrieveMetrics() --- .../javaagent/testing/AgentForTestingTest.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java b/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java index 5b62062c2c97..0c5428ae168a 100644 --- a/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java +++ b/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java @@ -27,11 +27,21 @@ void empty() { } @Test - void exportAndRetrieve() { + void exportAndRetrieveSpans() { GlobalOpenTelemetry.getTracer("test").spanBuilder("test").startSpan().end(); List spans = AgentTestingExporterAccess.getExportedSpans(); assertEquals(1, spans.size()); assertEquals("test", spans.get(0).getName()); } + + @Test + void exportAndRetrieveMetrics() { + GlobalOpenTelemetry.getMeter("test").upDownCounterBuilder("test").build().add(1); + + List metrics = AgentTestingExporterAccess.getExportedMetrics(); + assertEquals(1, metrics.size()); + assertEquals("test", metrics.get(0).getName()); + + } } From b1ebea0a74341e0663a0d044f1c9a641930254d1 Mon Sep 17 00:00:00 2001 From: Egor Fatyushin Date: Thu, 27 Feb 2025 18:30:55 +0000 Subject: [PATCH 02/17] Add missing import --- .../io/opentelemetry/javaagent/testing/AgentForTestingTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java b/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java index 0c5428ae168a..4b51d45fccc3 100644 --- a/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java +++ b/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java @@ -9,6 +9,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.javaagent.testing.common.AgentTestingExporterAccess; +import io.opentelemetry.sdk.metrics.data.MetricData; import io.opentelemetry.sdk.trace.data.SpanData; import java.util.List; import org.junit.jupiter.api.BeforeEach; From 6ddaffe29236582f2eb40118357f40a96d7158b1 Mon Sep 17 00:00:00 2001 From: Egor Fatyushin Date: Thu, 27 Feb 2025 18:35:31 +0000 Subject: [PATCH 03/17] Fix format violation --- .../io/opentelemetry/javaagent/testing/AgentForTestingTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java b/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java index 4b51d45fccc3..5dddf594fef5 100644 --- a/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java +++ b/testing/agent-for-testing/src/test/java/io/opentelemetry/javaagent/testing/AgentForTestingTest.java @@ -43,6 +43,5 @@ void exportAndRetrieveMetrics() { List metrics = AgentTestingExporterAccess.getExportedMetrics(); assertEquals(1, metrics.size()); assertEquals("test", metrics.get(0).getName()); - } } From 674d512904f6024fff409927adeb2c6542208f4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 18:33:58 +0200 Subject: [PATCH 04/17] fix(deps): update quarkus packages to v3.15.3.1 (patch) (#13413) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- smoke-tests/images/quarkus/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/smoke-tests/images/quarkus/build.gradle.kts b/smoke-tests/images/quarkus/build.gradle.kts index 82d6fc65e4f8..1657f19ce3dc 100644 --- a/smoke-tests/images/quarkus/build.gradle.kts +++ b/smoke-tests/images/quarkus/build.gradle.kts @@ -12,11 +12,11 @@ plugins { id("otel.java-conventions") id("com.google.cloud.tools.jib") - id("io.quarkus") version "3.15.3" + id("io.quarkus") version "3.15.3.1" } dependencies { - implementation(enforcedPlatform("io.quarkus:quarkus-bom:3.15.3")) + implementation(enforcedPlatform("io.quarkus:quarkus-bom:3.15.3.1")) implementation("io.quarkus:quarkus-rest") } From 6951c2b7d0d237daed4d1ad6418163548f517c1f Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Thu, 27 Feb 2025 17:41:35 +0100 Subject: [PATCH 05/17] Redact query string values for http client spans (#13114) Co-authored-by: Steve Rao Co-authored-by: Lauri Tulmin Co-authored-by: Lauri Tulmin Co-authored-by: Trask Stalnaker --- .../DefaultHttpClientInstrumenterBuilder.java | 15 +++ .../config/internal/CommonConfig.java | 8 ++ .../api/internal/Experimental.java | 36 +++++++ .../http/HttpClientAttributesExtractor.java | 73 ++++++++++++++- .../HttpClientAttributesExtractorBuilder.java | 7 ++ .../HttpClientAttributesExtractorTest.java | 93 +++++++++++++++++++ ...itional-spring-configuration-metadata.json | 6 ++ .../AbstractOtelSpringStarterSmokeTest.java | 19 ++++ .../OtelSpringStarterSmokeTestController.java | 6 ++ 9 files changed, 262 insertions(+), 1 deletion(-) create mode 100644 instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/Experimental.java diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java index a7929ae56eba..7a38491281f0 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java @@ -20,6 +20,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanStatusExtractor; +import io.opentelemetry.instrumentation.api.internal.Experimental; import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractor; import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder; import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesGetter; @@ -177,6 +178,18 @@ public DefaultHttpClientInstrumenterBuilder setKnownMethods( return this; } + /** + * Configures the instrumentation to redact sensitive URL parameters. + * + * @param redactQueryParameters {@code true} if the sensitive URL parameters have to be redacted. + */ + @CanIgnoreReturnValue + public DefaultHttpClientInstrumenterBuilder setRedactQueryParameters( + boolean redactQueryParameters) { + Experimental.setRedactQueryParameters(httpAttributesExtractorBuilder, redactQueryParameters); + return this; + } + /** Sets custom {@link SpanNameExtractor} via transform function. */ @CanIgnoreReturnValue public DefaultHttpClientInstrumenterBuilder setSpanNameExtractor( @@ -225,6 +238,7 @@ public Instrumenter build() { .addAttributesExtractor(HttpExperimentalAttributesExtractor.create(attributesGetter)) .addOperationMetrics(HttpClientExperimentalMetrics.get()); } + builderCustomizer.accept(builder); if (headerSetter != null) { @@ -248,6 +262,7 @@ public DefaultHttpClientInstrumenterBuilder configure(CommonC set( config::shouldEmitExperimentalHttpClientTelemetry, this::setEmitExperimentalHttpClientMetrics); + set(config::redactQueryParameters, this::setRedactQueryParameters); return this; } diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/CommonConfig.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/CommonConfig.java index 23875d7e8b5f..bb64425c6da5 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/CommonConfig.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/CommonConfig.java @@ -31,6 +31,7 @@ public final class CommonConfig { private final boolean statementSanitizationEnabled; private final boolean emitExperimentalHttpClientTelemetry; private final boolean emitExperimentalHttpServerTelemetry; + private final boolean redactQueryParameters; private final String loggingTraceIdKey; private final String loggingSpanIdKey; private final String loggingTraceFlagsKey; @@ -57,6 +58,9 @@ public CommonConfig(InstrumentationConfig config) { config.getBoolean("otel.instrumentation.common.db-statement-sanitizer.enabled", true); emitExperimentalHttpClientTelemetry = config.getBoolean("otel.instrumentation.http.client.emit-experimental-telemetry", false); + redactQueryParameters = + config.getBoolean( + "otel.instrumentation.http.client.experimental.redact-query-parameters", true); emitExperimentalHttpServerTelemetry = config.getBoolean("otel.instrumentation.http.server.emit-experimental-telemetry", false); enduserConfig = new EnduserConfig(config); @@ -111,6 +115,10 @@ public boolean shouldEmitExperimentalHttpServerTelemetry() { return emitExperimentalHttpServerTelemetry; } + public boolean redactQueryParameters() { + return redactQueryParameters; + } + public String getTraceIdKey() { return loggingTraceIdKey; } diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/Experimental.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/Experimental.java new file mode 100644 index 000000000000..250cfbd5b2fb --- /dev/null +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/Experimental.java @@ -0,0 +1,36 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.instrumentation.api.internal; + +import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder; +import java.util.function.BiConsumer; +import javax.annotation.Nullable; + +/** + * This class is internal and is hence not for public use. Its APIs are unstable and can change at + * any time. + */ +public final class Experimental { + + @Nullable + private static volatile BiConsumer, Boolean> + redactHttpClientQueryParameters; + + private Experimental() {} + + public static void setRedactQueryParameters( + HttpClientAttributesExtractorBuilder builder, boolean redactQueryParameters) { + if (redactHttpClientQueryParameters != null) { + redactHttpClientQueryParameters.accept(builder, redactQueryParameters); + } + } + + public static void internalSetRedactHttpClientQueryParameters( + BiConsumer, Boolean> + redactHttpClientQueryParameters) { + Experimental.redactHttpClientQueryParameters = redactHttpClientQueryParameters; + } +} diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractor.java index 5769d1169c3f..2227eaed7b43 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractor.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractor.java @@ -17,6 +17,9 @@ import io.opentelemetry.instrumentation.api.semconv.network.internal.InternalServerAttributesExtractor; import io.opentelemetry.semconv.HttpAttributes; import io.opentelemetry.semconv.UrlAttributes; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import java.util.function.ToIntFunction; import javax.annotation.Nullable; @@ -32,6 +35,9 @@ public final class HttpClientAttributesExtractor REQUEST, RESPONSE, HttpClientAttributesGetter> implements SpanKeyProvider { + private static final Set PARAMS_TO_REDACT = + new HashSet<>(Arrays.asList("AWSAccessKeyId", "Signature", "sig", "X-Goog-Signature")); + /** * Creates the HTTP client attributes extractor with default configuration. * @@ -54,6 +60,7 @@ public static HttpClientAttributesExtractorBuilder internalNetworkExtractor; private final InternalServerAttributesExtractor internalServerExtractor; private final ToIntFunction resendCountIncrementer; + private final boolean redactQueryParameters; HttpClientAttributesExtractor(HttpClientAttributesExtractorBuilder builder) { super( @@ -65,6 +72,7 @@ public static HttpClientAttributesExtractorBuilder { List capturedResponseHeaders = emptyList(); Set knownMethods = HttpConstants.KNOWN_METHODS; ToIntFunction resendCountIncrementer = HttpClientRequestResendCount::getAndIncrement; + boolean redactQueryParameters; + + static { + Experimental.internalSetRedactHttpClientQueryParameters( + (builder, redact) -> builder.redactQueryParameters = redact); + } HttpClientAttributesExtractorBuilder( HttpClientAttributesGetter httpAttributesGetter) { diff --git a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractorTest.java b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractorTest.java index f4760f0201d3..c04b78346f00 100644 --- a/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractorTest.java +++ b/instrumentation-api/src/test/java/io/opentelemetry/instrumentation/api/semconv/http/HttpClientAttributesExtractorTest.java @@ -23,12 +23,14 @@ import static java.util.Collections.emptyMap; import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.entry; +import static org.junit.jupiter.params.provider.Arguments.arguments; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; +import io.opentelemetry.instrumentation.api.internal.Experimental; import io.opentelemetry.instrumentation.api.internal.HttpConstants; import java.net.ConnectException; import java.util.HashMap; @@ -36,9 +38,13 @@ import java.util.List; import java.util.Map; import java.util.function.ToIntFunction; +import java.util.stream.Stream; import javax.annotation.Nullable; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; import org.junit.jupiter.params.provider.ArgumentsSource; import org.junit.jupiter.params.provider.ValueSource; @@ -200,6 +206,93 @@ void normal() { entry(NETWORK_PEER_PORT, 456L)); } + @ParameterizedTest + @ArgumentsSource(UrlSourceToRedact.class) + void shouldRedactUserInfoAndQueryParameters(String url, String expectedResult) { + Map request = new HashMap<>(); + request.put("urlFull", url); + + HttpClientAttributesExtractorBuilder, Map> builder = + HttpClientAttributesExtractor.builder(new TestHttpClientAttributesGetter()); + Experimental.setRedactQueryParameters(builder, true); + AttributesExtractor, Map> extractor = builder.build(); + + AttributesBuilder attributes = Attributes.builder(); + extractor.onStart(attributes, Context.root(), request); + + assertThat(attributes.build()).containsOnly(entry(URL_FULL, expectedResult)); + } + + static final class UrlSourceToRedact implements ArgumentsProvider { + + @Override + public Stream provideArguments(ExtensionContext context) { + return Stream.of( + arguments("https://user1:secret@github.com", "https://REDACTED:REDACTED@github.com"), + arguments( + "https://user1:secret@github.com/path/", + "https://REDACTED:REDACTED@github.com/path/"), + arguments( + "https://user1:secret@github.com#test.html", + "https://REDACTED:REDACTED@github.com#test.html"), + arguments( + "https://user1:secret@github.com?foo=b@r", + "https://REDACTED:REDACTED@github.com?foo=b@r"), + arguments( + "https://user1:secret@github.com/p@th?foo=b@r", + "https://REDACTED:REDACTED@github.com/p@th?foo=b@r"), + arguments("https://github.com/p@th?foo=b@r", "https://github.com/p@th?foo=b@r"), + arguments("https://github.com#t@st.html", "https://github.com#t@st.html"), + arguments("user1:secret@github.com", "user1:secret@github.com"), + arguments("https://github.com@", "https://github.com@"), + arguments( + "https://service.com?paramA=valA¶mB=valB", + "https://service.com?paramA=valA¶mB=valB"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7", + "https://service.com?AWSAccessKeyId=REDACTED"), + arguments( + "https://service.com?Signature=39Up9jzHkxhuIhFE9594DJxe7w6cIRCg0V6ICGS0%3A377", + "https://service.com?Signature=REDACTED"), + arguments( + "https://service.com?sig=39Up9jzHkxhuIhFE9594DJxe7w6cIRCg0V6ICGS0", + "https://service.com?sig=REDACTED"), + arguments( + "https://service.com?X-Goog-Signature=39Up9jzHkxhuIhFE9594DJxe7w6cIRCg0V6ICGS0", + "https://service.com?X-Goog-Signature=REDACTED"), + arguments( + "https://service.com?paramA=valA&AWSAccessKeyId=AKIAIOSFODNN7¶mB=valB", + "https://service.com?paramA=valA&AWSAccessKeyId=REDACTED¶mB=valB"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7¶mA=valA", + "https://service.com?AWSAccessKeyId=REDACTED¶mA=valA"), + arguments( + "https://service.com?paramA=valA&AWSAccessKeyId=AKIAIOSFODNN7", + "https://service.com?paramA=valA&AWSAccessKeyId=REDACTED"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7&AWSAccessKeyId=ZGIAIOSFODNN7", + "https://service.com?AWSAccessKeyId=REDACTED&AWSAccessKeyId=REDACTED"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7#ref", + "https://service.com?AWSAccessKeyId=REDACTED#ref"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7&aa&bb", + "https://service.com?AWSAccessKeyId=REDACTED&aa&bb"), + arguments( + "https://service.com?aa&bb&AWSAccessKeyId=AKIAIOSFODNN7", + "https://service.com?aa&bb&AWSAccessKeyId=REDACTED"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7&&", + "https://service.com?AWSAccessKeyId=REDACTED&&"), + arguments( + "https://service.com?&&AWSAccessKeyId=AKIAIOSFODNN7", + "https://service.com?&&AWSAccessKeyId=REDACTED"), + arguments( + "https://service.com?AWSAccessKeyId=AKIAIOSFODNN7&a&b#fragment", + "https://service.com?AWSAccessKeyId=REDACTED&a&b#fragment")); + } + } + @ParameterizedTest @ArgumentsSource(ValidRequestMethodsProvider.class) void shouldExtractKnownMethods(String requestMethod) { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/instrumentation/spring/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json index f179b7e7f9bd..e339c3455df8 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -311,6 +311,12 @@ "description": "Enable the capture of experimental HTTP client telemetry. Add the http.request.body.size and http.response.body.size> attributes to spans, and record the http.client.request.size and http.client.response.size metrics.", "defaultValue": false }, + { + "name": "otel.instrumentation.http.client.experimental.redact-query-parameters", + "type": "java.lang.Boolean", + "description": "Redact sensitive URL parameters. See https://opentelemetry.io/docs/specs/semconv/http/http-spans.", + "defaultValue": true + }, { "name": "otel.instrumentation.http.known-methods", "type": "java.util.List", diff --git a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java index c60ad29aeacb..c4f9c6413c82 100644 --- a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java +++ b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java @@ -293,4 +293,23 @@ void restTemplate() { span.hasKind(SpanKind.SERVER).hasAttribute(HttpAttributes.HTTP_ROUTE, "/ping"), span -> withSpanAssert(span))); } + + @Test + void shouldRedactSomeUrlParameters() { + testing.clearAllExportedData(); + + RestTemplate restTemplate = restTemplateBuilder.rootUri("http://localhost:" + port).build(); + restTemplate.getForObject( + "/test?X-Goog-Signature=39Up9jzHkxhuIhFE9594DJxe7w6cIRCg0V6ICGS0", String.class); + + testing.waitAndAssertTraces( + traceAssert -> + traceAssert.hasSpansSatisfyingExactly( + span -> + HttpSpanDataAssert.create(span) + .assertClientGetRequest("/test?X-Goog-Signature=REDACTED"), + span -> + span.hasKind(SpanKind.SERVER) + .hasAttribute(HttpAttributes.HTTP_ROUTE, "/test"))); + } } diff --git a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/OtelSpringStarterSmokeTestController.java b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/OtelSpringStarterSmokeTestController.java index c4902b2d65d5..68c6fd0d199f 100644 --- a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/OtelSpringStarterSmokeTestController.java +++ b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/OtelSpringStarterSmokeTestController.java @@ -15,6 +15,7 @@ public class OtelSpringStarterSmokeTestController { public static final String PING = "/ping"; + public static final String TEST = "/test"; public static final String TEST_HISTOGRAM = "histogram-test-otel-spring-starter"; public static final String METER_SCOPE_NAME = "scope"; private final LongHistogram histogram; @@ -33,4 +34,9 @@ public String ping() { component.withSpanMethod("from-controller"); return "pong"; } + + @GetMapping(TEST) + public String testUrlToRedact() { + return "ok"; + } } From 20640727badf927111d283369bcffd17d3ffb82f Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Thu, 27 Feb 2025 14:15:05 -0800 Subject: [PATCH 06/17] Better benchmark-overhead test logging (#13415) --- benchmark-overhead/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/benchmark-overhead/build.gradle.kts b/benchmark-overhead/build.gradle.kts index 599cad04d6cf..d3c8713dee60 100644 --- a/benchmark-overhead/build.gradle.kts +++ b/benchmark-overhead/build.gradle.kts @@ -33,5 +33,9 @@ dependencies { tasks { test { useJUnitPlatform() + testLogging { + exceptionFormat = TestExceptionFormat.FULL + showStandardStreams = true + } } } From becacd8fe92b4abbdc7962f3a041b599d5773177 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 07:53:02 +0200 Subject: [PATCH 07/17] fix(deps): update dependency com.uber.nullaway:nullaway to v0.12.4 (#13416) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- dependencyManagement/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index ad9cc64d4225..d44534a377d4 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -90,7 +90,7 @@ val DEPENDENCIES = listOf( "com.github.stefanbirkner:system-lambda:1.2.1", "com.github.stefanbirkner:system-rules:1.19.0", "uk.org.webcompere:system-stubs-jupiter:2.0.3", - "com.uber.nullaway:nullaway:0.12.3", + "com.uber.nullaway:nullaway:0.12.4", "commons-beanutils:commons-beanutils:1.10.1", "commons-cli:commons-cli:1.9.0", "commons-codec:commons-codec:1.18.0", From 24c80ece8c02be66f9f328eafb06b84734ac1dbc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 07:53:41 +0200 Subject: [PATCH 08/17] fix(deps): update dependency org.codehaus.groovy:groovy-bom to v3.0.24 (#13417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- conventions/src/main/kotlin/otel.java-conventions.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts index 40677d636f8b..637e532ed2d4 100644 --- a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts @@ -161,7 +161,7 @@ dependencies { compileOnly("com.google.errorprone:error_prone_annotations") codenarc("org.codenarc:CodeNarc:3.6.0") - codenarc(platform("org.codehaus.groovy:groovy-bom:3.0.23")) + codenarc(platform("org.codehaus.groovy:groovy-bom:3.0.24")) modules { // checkstyle uses the very old google-collections which causes Java 9 module conflict with From 8c1e4f28f8e6f22d9e237133211d5a9cf0fba08c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 09:28:39 +0200 Subject: [PATCH 09/17] fix(deps): update groovy monorepo to v4.0.26 (patch) (#13421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- dependencyManagement/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index d44534a377d4..9b709ab3ef3a 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -10,7 +10,7 @@ val otelContribVersion = "1.44.0-alpha" val otelSdkAlphaVersion = otelSdkVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1") // Need both BOM and groovy jars -val groovyVersion = "4.0.25" +val groovyVersion = "4.0.26" // We don't force libraries we instrument to new versions since we compile and test against specific // old baseline versions but we do try to force those libraries' transitive dependencies to new From ffd0b1aa25efe5807b6856dd8671c1ffbcda935f Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Fri, 28 Feb 2025 06:36:43 -0800 Subject: [PATCH 10/17] Fix benchmark-overhead compilation (#13418) --- .github/workflows/build-common.yml | 10 +++++++--- benchmark-overhead/build.gradle.kts | 5 +---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index c009bb58399a..d3636dd08073 100644 --- a/.github/workflows/build-common.yml +++ b/.github/workflows/build-common.yml @@ -415,7 +415,7 @@ jobs: run: ./gradlew :smoke-tests:test -PsmokeTestSuite=none --no-daemon ${{ inputs.no-build-cache && ' --no-build-cache' || '' }} - name: Test - run: ./gradlew :smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }}${{ inputs.no-build-cache && ' --no-build-cache' || '' }} + run: ./gradlew :smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }} ${{ inputs.no-build-cache && ' --no-build-cache' || '' }} - name: Upload jvm crash dump files if any if: failure() @@ -489,13 +489,17 @@ jobs: working-directory: gradle-plugins - name: Build distro - run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts${{ inputs.no-build-cache && ' --no-build-cache' || '' }} + run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts ${{ inputs.no-build-cache && ' --no-build-cache' || '' }} working-directory: examples/distro - name: Build extension - run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts${{ inputs.no-build-cache && ' --no-build-cache' || '' }} + run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts ${{ inputs.no-build-cache && ' --no-build-cache' || '' }} working-directory: examples/extension + - name: Build benchmark-overhead + run: ./gradlew assemble ${{ inputs.no-build-cache && ' --no-build-cache' || '' }} + working-directory: benchmark-overhead + - name: Run muzzle check against extension run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts working-directory: examples/extension diff --git a/benchmark-overhead/build.gradle.kts b/benchmark-overhead/build.gradle.kts index d3c8713dee60..d374f5011939 100644 --- a/benchmark-overhead/build.gradle.kts +++ b/benchmark-overhead/build.gradle.kts @@ -28,14 +28,11 @@ dependencies { testImplementation("org.slf4j:slf4j-simple:2.0.17") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks { test { useJUnitPlatform() - testLogging { - exceptionFormat = TestExceptionFormat.FULL - showStandardStreams = true - } } } From 10034d8aa04b593b6fd7539ffe0964aa4904458c Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 28 Feb 2025 19:10:26 +0200 Subject: [PATCH 11/17] Add all otel api bridging instrumentations to testing agent (#13423) --- .../javaagent/build.gradle.kts | 3 +++ .../javaagent/build.gradle.kts | 3 +++ .../OpenTelemetryApiInstrumentationModule.java | 7 +++++++ .../javaagent/build.gradle.kts | 3 +++ .../OpenTelemetryApiInstrumentationModule.java | 7 +++++++ .../javaagent/build.gradle.kts | 3 +++ .../OpenTelemetryApiInstrumentationModule.java | 7 +++++++ .../javaagent/build.gradle.kts | 2 -- .../javaagent/build.gradle.kts | 8 +++----- .../OpenTelemetryApiInstrumentationModule.java | 8 +++++--- .../javaagent/build.gradle.kts | 10 +++------- .../javaagent/build.gradle.kts | 7 +++---- .../OpenTelemetryApiInstrumentationModule.java | 8 +++++--- ...nTelemetryApiIncubatorInstrumentationModule.java | 1 + .../javaagent/build.gradle.kts | 3 +++ .../javaagent/build.gradle.kts | 3 --- .../javaagent/build.gradle.kts | 13 +++---------- .../OpenTelemetryApiInstrumentationModule.java | 4 +++- ...nTelemetryApiIncubatorInstrumentationModule.java | 1 + .../javaagent/build.gradle.kts | 7 ------- ...nTelemetryApiIncubatorInstrumentationModule.java | 4 +++- javaagent/build.gradle.kts | 10 ++++++++++ 22 files changed, 76 insertions(+), 46 deletions(-) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts index 332b6a67f871..a7a4c7f680f8 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/build.gradle.kts @@ -50,4 +50,7 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-api:1.4.0") } } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") + } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/build.gradle.kts index fd028894c92f..d4ddba4fb5e2 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/build.gradle.kts @@ -14,4 +14,7 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-api:1.10.0") } } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") + } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/OpenTelemetryApiInstrumentationModule.java index 81506ec514d8..256f5527abb9 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/OpenTelemetryApiInstrumentationModule.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Collections.singletonList; import com.google.auto.service.AutoService; @@ -12,6 +13,7 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule @@ -26,6 +28,11 @@ public List typeInstrumentations() { return singletonList(new OpenTelemetryInstrumentation()); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("application.io.opentelemetry.api.metrics.LongGaugeBuilder"); + } + @Override public String getModuleGroup() { return "opentelemetry-api-bridge"; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/build.gradle.kts index 4b91c4e5f5da..ada84555373a 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/build.gradle.kts @@ -15,4 +15,7 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-api:1.15.0") } } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") + } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_15/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_15/OpenTelemetryApiInstrumentationModule.java index 8793787e71b6..649e8df960e5 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_15/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.15/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_15/OpenTelemetryApiInstrumentationModule.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_15; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Collections.singletonList; import com.google.auto.service.AutoService; @@ -12,6 +13,7 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule @@ -25,6 +27,11 @@ public List typeInstrumentations() { return singletonList(new OpenTelemetryInstrumentation()); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("application.io.opentelemetry.api.metrics.BatchCallback"); + } + @Override public String getModuleGroup() { return "opentelemetry-api-bridge"; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts index 311de19e02c5..65506e58dede 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts @@ -18,4 +18,7 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-sdk-testing:1.27.0") } } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") + } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java index aed58d617504..53c3a80b8f82 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static java.util.Collections.singletonList; import com.google.auto.service.AutoService; @@ -12,6 +13,7 @@ import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; @AutoService(InstrumentationModule.class) public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule @@ -25,6 +27,11 @@ public List typeInstrumentations() { return singletonList(new OpenTelemetryInstrumentation()); } + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed("application.io.opentelemetry.api.logs.LoggerBuilder"); + } + @Override public String getModuleGroup() { return "opentelemetry-api-bridge"; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/build.gradle.kts index 18e2d27be404..5a99a9c1b60f 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.31/javaagent/build.gradle.kts @@ -7,10 +7,8 @@ dependencies { compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) testImplementation("io.opentelemetry:opentelemetry-extension-incubator:1.31.0-alpha") } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/build.gradle.kts index dd613e266cb5..b952f068fc4e 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/build.gradle.kts @@ -7,10 +7,8 @@ dependencies { compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) } @@ -21,9 +19,9 @@ configurations.configureEach { resolutionStrategy { force("io.opentelemetry:opentelemetry-api:1.32.0") } - if (name.equals("testRuntimeClasspath")) { - exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") - } + } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_32/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_32/OpenTelemetryApiInstrumentationModule.java index 49e8dbd8eed1..92bd112db90c 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_32/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.32/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_32/OpenTelemetryApiInstrumentationModule.java @@ -27,9 +27,11 @@ public OpenTelemetryApiInstrumentationModule() { public ElementMatcher.Junction classLoaderMatcher() { // skip instrumentation when opentelemetry-extension-incubator is present, instrumentation is // handled by OpenTelemetryApiIncubatorInstrumentationModule - return not( - hasClassesNamed( - "application.io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder")); + return hasClassesNamed("application.io.opentelemetry.api.logs.LoggerBuilder") + .and( + not( + hasClassesNamed( + "application.io.opentelemetry.extension.incubator.metrics.ExtendedDoubleHistogramBuilder"))); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.37/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.37/javaagent/build.gradle.kts index 0c03f9956b48..3e392a8e4ef4 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.37/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.37/javaagent/build.gradle.kts @@ -7,12 +7,8 @@ dependencies { compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.32:javaagent")) } configurations.configureEach { @@ -27,9 +23,9 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-extension-incubator:1.32.0-alpha") } } - if (name.equals("testRuntimeClasspath")) { - exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") - } + } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/build.gradle.kts index 468343ef6a1b..90f156dde253 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/build.gradle.kts @@ -10,7 +10,6 @@ dependencies { implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.32:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.37:javaagent")) @@ -22,9 +21,9 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-api:1.38.0") force("io.opentelemetry:opentelemetry-api-incubator:1.38.0-alpha") } - if (name.equals("testRuntimeClasspath")) { - exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") - } + } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/OpenTelemetryApiInstrumentationModule.java index fc0d9573a9cf..7385e5677dfe 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/OpenTelemetryApiInstrumentationModule.java @@ -27,9 +27,11 @@ public OpenTelemetryApiInstrumentationModule() { public ElementMatcher.Junction classLoaderMatcher() { // skip instrumentation when opentelemetry-api-incubator is present, instrumentation is // handled by OpenTelemetryApiIncubatorInstrumentationModule - return not( - hasClassesNamed( - "application.io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder")); + return hasClassesNamed("application.io.opentelemetry.api.metrics.LongGauge") + .and( + not( + hasClassesNamed( + "application.io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder"))); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java index a70e8fffbd08..752ac424f66d 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.38/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_38/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -27,6 +27,7 @@ public ElementMatcher.Junction classLoaderMatcher() { // skip instrumentation when opentelemetry-api-incubator is not present, instrumentation // is handled by OpenTelemetryApiInstrumentationModule return hasClassesNamed( + "application.io.opentelemetry.api.metrics.LongGauge", "application.io.opentelemetry.api.incubator.metrics.ExtendedDoubleHistogramBuilder"); } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.4/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.4/javaagent/build.gradle.kts index 5861e77b22de..66bd612eb1f9 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.4/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.4/javaagent/build.gradle.kts @@ -13,4 +13,7 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-api:1.4.0") } } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") + } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/build.gradle.kts index 5bde283fe943..a108043df81d 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/build.gradle.kts @@ -7,12 +7,9 @@ dependencies { compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.32:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.37:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.38:javaagent")) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/build.gradle.kts index fe3925e57cc0..82bf9687e884 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/build.gradle.kts @@ -7,14 +7,7 @@ dependencies { compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.32:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.37:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.38:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent")) } @@ -24,9 +17,9 @@ configurations.configureEach { force("io.opentelemetry:opentelemetry-api:1.42.0") force("io.opentelemetry:opentelemetry-api-incubator:1.42.0-alpha") } - if (name.equals("testRuntimeClasspath")) { - exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") - } + } + if (name == "testRuntimeClasspath") { + exclude(group = "io.opentelemetry", module = "opentelemetry-api-incubator") } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/OpenTelemetryApiInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/OpenTelemetryApiInstrumentationModule.java index 3b99eedb53c4..d0e3cd0fb473 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/OpenTelemetryApiInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/OpenTelemetryApiInstrumentationModule.java @@ -25,7 +25,9 @@ public OpenTelemetryApiInstrumentationModule() { @Override public ElementMatcher.Junction classLoaderMatcher() { - return not(hasClassesNamed("application.io.opentelemetry.api.incubator.logs.ExtendedLogger")); + return hasClassesNamed("application.io.opentelemetry.api.common.Value") + .and( + not(hasClassesNamed("application.io.opentelemetry.api.incubator.logs.ExtendedLogger"))); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java index 9a44be9ad885..65b1a125dbb9 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.42/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_42/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -27,6 +27,7 @@ public ElementMatcher.Junction classLoaderMatcher() { // EventLogger was removed in 1.47, including it here prevents the instrumentation from applying // to 1.47 return hasClassesNamed( + "application.io.opentelemetry.api.common.Value", "application.io.opentelemetry.api.incubator.logs.ExtendedLogger", "application.io.opentelemetry.api.incubator.events.EventLogger"); } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/build.gradle.kts index 3662f4ec8485..103a2ce08f2e 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/build.gradle.kts @@ -7,14 +7,7 @@ dependencies { compileOnly("io.opentelemetry:opentelemetry-api-incubator") implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.32:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.37:javaagent")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.38:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent")) implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent")) diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java index 63fb66886b28..3c5074403927 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -24,7 +24,9 @@ public OpenTelemetryApiIncubatorInstrumentationModule() { @Override public ElementMatcher.Junction classLoaderMatcher() { - return hasClassesNamed("application.io.opentelemetry.api.incubator.logs.ExtendedLogger"); + return hasClassesNamed( + "application.io.opentelemetry.api.common.Value", + "application.io.opentelemetry.api.incubator.logs.ExtendedLogger"); } @Override diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 6744382b7c25..11637af5e7ff 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -76,6 +76,16 @@ dependencies { baseJavaagentLibs(project(":muzzle")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.31:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.32:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.37:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.38:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-api:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")) baseJavaagentLibs(project(":instrumentation:executors:javaagent")) From b8a5b50e009109ed4b115c9c932659cbc6e3995d Mon Sep 17 00:00:00 2001 From: "otelbot[bot]" <197425009+otelbot[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 09:27:37 +0000 Subject: [PATCH 12/17] Merge change log updates from release/v2.13.x (#13426) Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Lauri Tulmin --- CHANGELOG.md | 7 +++++++ .../opentelemetry-instrumentation-annotations.txt | 2 +- .../opentelemetry-instrumentation-api.txt | 2 +- .../opentelemetry-spring-boot-autoconfigure.txt | 2 +- .../opentelemetry-spring-boot-starter.txt | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b6ce97e10a9..f5e528bc6760 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,13 @@ `io.opentelemetry.instrumentation.httpclient` was deprecated in favor of the new package name `io.opentelemetry.instrumentation.javahttpclient` +## Version 2.13.3 (2025-02-28) + +### 🛠️ Bug fixes + +- Backport: Fix failure to start when AWS Resource Provider is enabled + ([#13420](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13420)) + ## Version 2.13.2 (2025-02-27) ### 🛠️ Bug fixes diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt index 0a73c7b1f120..58d395de9152 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-instrumentation-annotations-2.14.0-SNAPSHOT.jar against opentelemetry-instrumentation-annotations-2.13.2.jar +Comparing source compatibility of opentelemetry-instrumentation-annotations-2.14.0-SNAPSHOT.jar against opentelemetry-instrumentation-annotations-2.13.3.jar No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt index 41366b80e76b..71b715386989 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-instrumentation-api-2.14.0-SNAPSHOT.jar against opentelemetry-instrumentation-api-2.13.2.jar +Comparing source compatibility of opentelemetry-instrumentation-api-2.14.0-SNAPSHOT.jar against opentelemetry-instrumentation-api-2.13.3.jar No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt index d61fa26312e9..694d80bd6dab 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-autoconfigure.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-spring-boot-autoconfigure-2.14.0-SNAPSHOT.jar against opentelemetry-spring-boot-autoconfigure-2.13.2.jar +Comparing source compatibility of opentelemetry-spring-boot-autoconfigure-2.14.0-SNAPSHOT.jar against opentelemetry-spring-boot-autoconfigure-2.13.3.jar No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt index 8b455ed06eee..3061c26af6ca 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-spring-boot-starter.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of opentelemetry-spring-boot-starter-2.14.0-SNAPSHOT.jar against opentelemetry-spring-boot-starter-2.13.2.jar +Comparing source compatibility of opentelemetry-spring-boot-starter-2.14.0-SNAPSHOT.jar against opentelemetry-spring-boot-starter-2.13.3.jar No changes. \ No newline at end of file From 9571a9875babdcbc154a045ffac8493f39663ed9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 10:15:27 +0000 Subject: [PATCH 13/17] fix(deps): update dependency com.fasterxml.jackson.core:jackson-databind to v2.18.3 (#13428) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/distro/smoke-tests/build.gradle | 2 +- examples/extension/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/distro/smoke-tests/build.gradle b/examples/distro/smoke-tests/build.gradle index 6080b958d19e..7b79b2fc71e8 100644 --- a/examples/distro/smoke-tests/build.gradle +++ b/examples/distro/smoke-tests/build.gradle @@ -4,7 +4,7 @@ plugins { dependencies { testImplementation("org.testcontainers:testcontainers:1.20.5") - testImplementation("com.fasterxml.jackson.core:jackson-databind:2.18.2") + testImplementation("com.fasterxml.jackson.core:jackson-databind:2.18.3") testImplementation("com.google.protobuf:protobuf-java-util:4.29.3") testImplementation("com.squareup.okhttp3:okhttp:4.12.0") testImplementation("io.opentelemetry.proto:opentelemetry-proto:1.5.0-alpha") diff --git a/examples/extension/build.gradle b/examples/extension/build.gradle index 717d562c5e05..71f488280e21 100644 --- a/examples/extension/build.gradle +++ b/examples/extension/build.gradle @@ -98,7 +98,7 @@ dependencies { //All dependencies below are only for tests testImplementation("org.testcontainers:testcontainers:1.20.5") - testImplementation("com.fasterxml.jackson.core:jackson-databind:2.18.2") + testImplementation("com.fasterxml.jackson.core:jackson-databind:2.18.3") testImplementation("com.google.protobuf:protobuf-java-util:4.29.3") testImplementation("com.squareup.okhttp3:okhttp:4.12.0") testImplementation("io.opentelemetry:opentelemetry-api") From 98ef9a0e5a5e5e5b61d3777cc9a74316430823ec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 10:34:32 +0000 Subject: [PATCH 14/17] fix(deps): update dependency com.fasterxml.jackson:jackson-bom to v2.18.3 (#13429) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lauri Tulmin --- dependencyManagement/build.gradle.kts | 2 +- .../META-INF/LICENSE | 0 .../META-INF/NOTICE | 0 .../META-INF/LICENSE | 0 .../META-INF/NOTICE | 0 .../META-INF/LICENSE | 0 .../META-INF/NOTICE | 0 .../META-INF/LICENSE | 0 .../META-INF/NOTICE | 0 licenses/licenses.md | 24 +++++++++---------- 10 files changed, 13 insertions(+), 13 deletions(-) rename licenses/{jackson-annotations-2.18.2.jar => jackson-annotations-2.18.3.jar}/META-INF/LICENSE (100%) rename licenses/{jackson-annotations-2.18.2.jar => jackson-annotations-2.18.3.jar}/META-INF/NOTICE (100%) rename licenses/{jackson-core-2.18.2.jar => jackson-core-2.18.3.jar}/META-INF/LICENSE (100%) rename licenses/{jackson-core-2.18.2.jar => jackson-core-2.18.3.jar}/META-INF/NOTICE (100%) rename licenses/{jackson-databind-2.18.2.jar => jackson-databind-2.18.3.jar}/META-INF/LICENSE (100%) rename licenses/{jackson-databind-2.18.2.jar => jackson-databind-2.18.3.jar}/META-INF/NOTICE (100%) rename licenses/{jackson-dataformat-yaml-2.18.2.jar => jackson-dataformat-yaml-2.18.3.jar}/META-INF/LICENSE (100%) rename licenses/{jackson-dataformat-yaml-2.18.2.jar => jackson-dataformat-yaml-2.18.3.jar}/META-INF/NOTICE (100%) diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 9b709ab3ef3a..1e55b77d53e0 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -27,7 +27,7 @@ val DEPENDENCY_BOMS = listOf( // for some reason boms show up as runtime dependencies in license and vulnerability scans // even if they are only used by test dependencies, so not using junit bom since it is LGPL - "com.fasterxml.jackson:jackson-bom:2.18.2", + "com.fasterxml.jackson:jackson-bom:2.18.3", "com.squareup.okio:okio-bom:3.10.2", // see https://github.com/open-telemetry/opentelemetry-java/issues/5637 "com.google.guava:guava-bom:33.4.0-jre", "org.apache.groovy:groovy-bom:${groovyVersion}", diff --git a/licenses/jackson-annotations-2.18.2.jar/META-INF/LICENSE b/licenses/jackson-annotations-2.18.3.jar/META-INF/LICENSE similarity index 100% rename from licenses/jackson-annotations-2.18.2.jar/META-INF/LICENSE rename to licenses/jackson-annotations-2.18.3.jar/META-INF/LICENSE diff --git a/licenses/jackson-annotations-2.18.2.jar/META-INF/NOTICE b/licenses/jackson-annotations-2.18.3.jar/META-INF/NOTICE similarity index 100% rename from licenses/jackson-annotations-2.18.2.jar/META-INF/NOTICE rename to licenses/jackson-annotations-2.18.3.jar/META-INF/NOTICE diff --git a/licenses/jackson-core-2.18.2.jar/META-INF/LICENSE b/licenses/jackson-core-2.18.3.jar/META-INF/LICENSE similarity index 100% rename from licenses/jackson-core-2.18.2.jar/META-INF/LICENSE rename to licenses/jackson-core-2.18.3.jar/META-INF/LICENSE diff --git a/licenses/jackson-core-2.18.2.jar/META-INF/NOTICE b/licenses/jackson-core-2.18.3.jar/META-INF/NOTICE similarity index 100% rename from licenses/jackson-core-2.18.2.jar/META-INF/NOTICE rename to licenses/jackson-core-2.18.3.jar/META-INF/NOTICE diff --git a/licenses/jackson-databind-2.18.2.jar/META-INF/LICENSE b/licenses/jackson-databind-2.18.3.jar/META-INF/LICENSE similarity index 100% rename from licenses/jackson-databind-2.18.2.jar/META-INF/LICENSE rename to licenses/jackson-databind-2.18.3.jar/META-INF/LICENSE diff --git a/licenses/jackson-databind-2.18.2.jar/META-INF/NOTICE b/licenses/jackson-databind-2.18.3.jar/META-INF/NOTICE similarity index 100% rename from licenses/jackson-databind-2.18.2.jar/META-INF/NOTICE rename to licenses/jackson-databind-2.18.3.jar/META-INF/NOTICE diff --git a/licenses/jackson-dataformat-yaml-2.18.2.jar/META-INF/LICENSE b/licenses/jackson-dataformat-yaml-2.18.3.jar/META-INF/LICENSE similarity index 100% rename from licenses/jackson-dataformat-yaml-2.18.2.jar/META-INF/LICENSE rename to licenses/jackson-dataformat-yaml-2.18.3.jar/META-INF/LICENSE diff --git a/licenses/jackson-dataformat-yaml-2.18.2.jar/META-INF/NOTICE b/licenses/jackson-dataformat-yaml-2.18.3.jar/META-INF/NOTICE similarity index 100% rename from licenses/jackson-dataformat-yaml-2.18.2.jar/META-INF/NOTICE rename to licenses/jackson-dataformat-yaml-2.18.3.jar/META-INF/NOTICE diff --git a/licenses/licenses.md b/licenses/licenses.md index 65d1a4662173..86bdabc278b6 100644 --- a/licenses/licenses.md +++ b/licenses/licenses.md @@ -12,33 +12,33 @@ > - **POM Project URL**: [https://github.com/raphw/weak-lock-free](https://github.com/raphw/weak-lock-free) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**3** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.18.2` +**3** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-annotations` **Version:** `2.18.3` > - **Project URL**: [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-annotations-2.18.2.jar/META-INF/LICENSE](jackson-annotations-2.18.2.jar/META-INF/LICENSE) - - [jackson-annotations-2.18.2.jar/META-INF/NOTICE](jackson-annotations-2.18.2.jar/META-INF/NOTICE) +> - **Embedded license files**: [jackson-annotations-2.18.3.jar/META-INF/LICENSE](jackson-annotations-2.18.3.jar/META-INF/LICENSE) + - [jackson-annotations-2.18.3.jar/META-INF/NOTICE](jackson-annotations-2.18.3.jar/META-INF/NOTICE) -**4** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-core` **Version:** `2.18.2` +**4** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-core` **Version:** `2.18.3` > - **Project URL**: [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-core-2.18.2.jar/META-INF/LICENSE](jackson-core-2.18.2.jar/META-INF/LICENSE) - - [jackson-core-2.18.2.jar/META-INF/NOTICE](jackson-core-2.18.2.jar/META-INF/NOTICE) +> - **Embedded license files**: [jackson-core-2.18.3.jar/META-INF/LICENSE](jackson-core-2.18.3.jar/META-INF/LICENSE) + - [jackson-core-2.18.3.jar/META-INF/NOTICE](jackson-core-2.18.3.jar/META-INF/NOTICE) -**5** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-databind` **Version:** `2.18.2` +**5** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-databind` **Version:** `2.18.3` > - **Project URL**: [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-databind-2.18.2.jar/META-INF/LICENSE](jackson-databind-2.18.2.jar/META-INF/LICENSE) - - [jackson-databind-2.18.2.jar/META-INF/NOTICE](jackson-databind-2.18.2.jar/META-INF/NOTICE) +> - **Embedded license files**: [jackson-databind-2.18.3.jar/META-INF/LICENSE](jackson-databind-2.18.3.jar/META-INF/LICENSE) + - [jackson-databind-2.18.3.jar/META-INF/NOTICE](jackson-databind-2.18.3.jar/META-INF/NOTICE) -**6** **Group:** `com.fasterxml.jackson.dataformat` **Name:** `jackson-dataformat-yaml` **Version:** `2.18.2` +**6** **Group:** `com.fasterxml.jackson.dataformat` **Name:** `jackson-dataformat-yaml` **Version:** `2.18.3` > - **Project URL**: [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [jackson-dataformat-yaml-2.18.2.jar/META-INF/LICENSE](jackson-dataformat-yaml-2.18.2.jar/META-INF/LICENSE) - - [jackson-dataformat-yaml-2.18.2.jar/META-INF/NOTICE](jackson-dataformat-yaml-2.18.2.jar/META-INF/NOTICE) +> - **Embedded license files**: [jackson-dataformat-yaml-2.18.3.jar/META-INF/LICENSE](jackson-dataformat-yaml-2.18.3.jar/META-INF/LICENSE) + - [jackson-dataformat-yaml-2.18.3.jar/META-INF/NOTICE](jackson-dataformat-yaml-2.18.3.jar/META-INF/NOTICE) **7** **Group:** `com.google.cloud.opentelemetry` **Name:** `detector-resources-support` **Version:** `0.33.0` > - **POM Project URL**: [https://github.com/GoogleCloudPlatform/opentelemetry-operations-java](https://github.com/GoogleCloudPlatform/opentelemetry-operations-java) From d9356df3f22dc4da74e6bdd747230609c14eb1fe Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Sat, 1 Mar 2025 13:50:23 +0200 Subject: [PATCH 15/17] Fix adding logback mdc appender in spring starter (#13391) --- .../build.gradle.kts | 1 + .../logging/LogbackAppenderInstaller.java | 8 +++++++ .../logging/CustomListAppender.java | 24 +++++++++++++++++++ .../logging/LogbackAppenderTest.java | 16 +++++++++++++ .../resources/logback-no-otel-appenders.xml | 2 +- 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/CustomListAppender.java diff --git a/instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts b/instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts index 99fbcbd98b8e..681fdcb45b81 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts +++ b/instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts @@ -132,6 +132,7 @@ testing { implementation("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion") implementation(project(":instrumentation:logback:logback-appender-1.0:library")) + implementation(project(":instrumentation:logback:logback-mdc-1.0:library")) // using the same versions as in the spring-boot-autoconfigure implementation("ch.qos.logback:logback-classic") { version { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java index 4e8af4b11703..fd13848aaf2f 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java @@ -172,6 +172,14 @@ private static void addMdcAppender( initializeMdcAppenderFromProperties(applicationEnvironmentPreparedEvent, openTelemetryAppender); openTelemetryAppender.start(); logger.addAppender(openTelemetryAppender); + // move existing appenders under otel mdc appender, so they could observe the added mdc values + for (Iterator> i = logger.iteratorForAppenders(); i.hasNext(); ) { + Appender appender = i.next(); + if (appender != openTelemetryAppender) { + openTelemetryAppender.addAppender(appender); + logger.detachAppender(appender); + } + } } private static void initializeMdcAppenderFromProperties( diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/CustomListAppender.java b/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/CustomListAppender.java new file mode 100644 index 000000000000..c2ecb450282b --- /dev/null +++ b/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/CustomListAppender.java @@ -0,0 +1,24 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.instrumentation.spring.autoconfigure.internal.instrumentation.logging; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.read.ListAppender; + +@SuppressWarnings("OtelInternalJavadoc") +public class CustomListAppender extends ListAppender { + public static boolean lastLogHadTraceId; + + @Override + protected void append(ILoggingEvent event) { + // Since list appender just captures the event object it is possible that the trace_id is not + // present when list appender was called but is added at a later time. Here we record whether + // trace_id was present in mdc at the time when the event was processed by the list appender. + // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/13383 + lastLogHadTraceId = event.getMDCPropertyMap().get("trace_id") != null; + super.append(event); + } +} diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderTest.java index c11631cb7d4d..53d841d30bec 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderTest.java @@ -8,6 +8,7 @@ import static org.assertj.core.api.Assertions.assertThat; import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.Appender; import ch.qos.logback.core.read.ListAppender; import ch.qos.logback.core.spi.AppenderAttachable; import io.opentelemetry.api.OpenTelemetry; @@ -22,6 +23,7 @@ import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension; import io.opentelemetry.sdk.logs.data.LogRecordData; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import org.junit.jupiter.api.BeforeEach; @@ -191,6 +193,7 @@ void shouldInitializeMdcAppender() { } assertThat(testing.logRecords()).isEmpty(); + assertThat(CustomListAppender.lastLogHadTraceId).isTrue(); assertThat(listAppender.list) .satisfiesExactly( event -> @@ -238,13 +241,26 @@ void shouldNotInitializeMdcAppenderWhenDisabled() { private static ListAppender getListAppender() { Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) logger; + ListAppender listAppender = (ListAppender) logbackLogger.getAppender("List"); if (listAppender != null) { return listAppender; } + AppenderAttachable mdcAppender = (AppenderAttachable) logbackLogger.getAppender("OpenTelemetryMdc"); + if (mdcAppender == null) { + for (Iterator> i = logbackLogger.iteratorForAppenders(); + i.hasNext(); ) { + Appender appender = i.next(); + if (appender + instanceof io.opentelemetry.instrumentation.logback.mdc.v1_0.OpenTelemetryAppender) { + mdcAppender = (AppenderAttachable) appender; + break; + } + } + } return (ListAppender) mdcAppender.getAppender("List"); } } diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/resources/logback-no-otel-appenders.xml b/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/resources/logback-no-otel-appenders.xml index d77f5158c476..4d160ba2a8a7 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/resources/logback-no-otel-appenders.xml +++ b/instrumentation/spring/spring-boot-autoconfigure/src/testLogbackAppender/resources/logback-no-otel-appenders.xml @@ -8,7 +8,7 @@ - + From 373bf80be6697f1392f829a558d88609e259e31a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 07:35:52 +0200 Subject: [PATCH 16/17] chore(deps): update weekly update (#13437) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/auto-update-otel-sdk.yml | 2 +- .github/workflows/backport.yml | 2 +- .github/workflows/build-common.yml | 2 +- .github/workflows/prepare-patch-release.yml | 2 +- .github/workflows/prepare-release-branch.yml | 4 ++-- .github/workflows/publish-petclinic-benchmark-image.yml | 4 ++-- .github/workflows/release-update-cloudfoundry-index.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/reusable-test-indy.yml | 2 +- .github/workflows/reusable-test-latest-deps.yml | 2 +- benchmark-overhead/Dockerfile.petclinic | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/auto-update-otel-sdk.yml b/.github/workflows/auto-update-otel-sdk.yml index 38ab865acacf..5798885b70a5 100644 --- a/.github/workflows/auto-update-otel-sdk.yml +++ b/.github/workflows/auto-update-otel-sdk.yml @@ -84,7 +84,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 8e3916e0d2c5..194aadd17709 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -29,7 +29,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index d3636dd08073..687e3650b886 100644 --- a/.github/workflows/build-common.yml +++ b/.github/workflows/build-common.yml @@ -272,7 +272,7 @@ jobs: # vaadin tests use pnpm - name: Cache pnpm modules - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 + uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2 with: path: ~/.pnpm-store key: ${{ runner.os }}-test-cache-pnpm-modules diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index f425e8681c4c..bba4350cd0d1 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -51,7 +51,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} diff --git a/.github/workflows/prepare-release-branch.yml b/.github/workflows/prepare-release-branch.yml index 294500986b61..f29b032d9fc0 100644 --- a/.github/workflows/prepare-release-branch.yml +++ b/.github/workflows/prepare-release-branch.yml @@ -63,7 +63,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} @@ -120,7 +120,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} diff --git a/.github/workflows/publish-petclinic-benchmark-image.yml b/.github/workflows/publish-petclinic-benchmark-image.yml index aa61f7e85ff1..5d33e901cd2c 100644 --- a/.github/workflows/publish-petclinic-benchmark-image.yml +++ b/.github/workflows/publish-petclinic-benchmark-image.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3.9.0 + - uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 - name: Login to GitHub container registry uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 @@ -32,7 +32,7 @@ jobs: run: echo "TS=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV - name: Push to GitHub packages - uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 # v6.14.0 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0 with: push: true file: benchmark-overhead/Dockerfile.petclinic diff --git a/.github/workflows/release-update-cloudfoundry-index.yml b/.github/workflows/release-update-cloudfoundry-index.yml index 6ddb5710c28e..e0914c6a1b4d 100644 --- a/.github/workflows/release-update-cloudfoundry-index.yml +++ b/.github/workflows/release-update-cloudfoundry-index.yml @@ -44,7 +44,7 @@ jobs: - name: display changes run: git diff - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e376da5ef6d..706ed7029682 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -219,7 +219,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} @@ -288,7 +288,7 @@ jobs: - name: Use CLA approved bot run: .github/scripts/use-cla-approved-bot.sh - - uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5 + - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1.11.6 id: otelbot-token with: app-id: ${{ vars.OTELBOT_APP_ID }} diff --git a/.github/workflows/reusable-test-indy.yml b/.github/workflows/reusable-test-indy.yml index 619114061b9a..82e619faf96a 100644 --- a/.github/workflows/reusable-test-indy.yml +++ b/.github/workflows/reusable-test-indy.yml @@ -52,7 +52,7 @@ jobs: # vaadin tests use pnpm - name: Cache pnpm modules - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 + uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2 with: path: ~/.pnpm-store key: ${{ runner.os }}-test-latest-cache-pnpm-modules diff --git a/.github/workflows/reusable-test-latest-deps.yml b/.github/workflows/reusable-test-latest-deps.yml index 9b781d4a19d8..756997349273 100644 --- a/.github/workflows/reusable-test-latest-deps.yml +++ b/.github/workflows/reusable-test-latest-deps.yml @@ -46,7 +46,7 @@ jobs: # vaadin tests use pnpm - name: Cache pnpm modules - uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4.2.1 + uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2 with: path: ~/.pnpm-store key: ${{ runner.os }}-test-latest-cache-pnpm-modules diff --git a/benchmark-overhead/Dockerfile.petclinic b/benchmark-overhead/Dockerfile.petclinic index 9063ee1349d6..a181bac6f9be 100644 --- a/benchmark-overhead/Dockerfile.petclinic +++ b/benchmark-overhead/Dockerfile.petclinic @@ -1,4 +1,4 @@ -FROM eclipse-temurin:11.0.26_4-jdk@sha256:0fce1ebca683486d57432c42b8a9764c3fe0b18ae092746248fac258ad05ee00 as app-build +FROM eclipse-temurin:11.0.26_4-jdk@sha256:be923b4c9abb99b97b8aa18169bf4598ab570e9b6dc3ca0ecaef433bd2011dcc as app-build # This is the base image that will contain a built version of the spring-petclinic-rest # application. Installing the dependencies and maven compiling the application is time From c04d3ef2e36a4ebe9033b19b0faae09e042654e5 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Mon, 3 Mar 2025 09:37:42 +0200 Subject: [PATCH 17/17] Group renovate updates for jackson (#13433) --- .github/renovate.json5 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 33fe70ab80a5..465041d19234 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -78,6 +78,12 @@ 'com.gradleup.shadow{/,}**', ], }, + { + groupName: 'jackson packages', + matchPackageNames: [ + 'com.fasterxml.jackson{/,}**', + ], + }, { // prevent update to 2.4-groovy-4.0-SNAPSHOT allowedVersions: '!/\\-SNAPSHOT$/',