From 8e7e176d549ec75c605a43d617f5eac38b81a381 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Fri, 29 Sep 2023 11:42:05 +0200 Subject: [PATCH 1/3] Adopt new io.opentelemetry.semconv:opentelemetry-semconv lib --- maven-extension/build.gradle.kts | 9 +-------- .../maven/handler/GoogleJibBuildHandler.java | 2 +- .../maven/handler/MavenDeployHandler.java | 10 +++++----- .../maven/handler/SnykMonitorHandler.java | 4 ++-- .../opentelemetry/maven/handler/SnykTestHandler.java | 4 ++-- .../maven/handler/SpringBootBuildImageHandler.java | 10 +++++----- .../maven/resources/MavenResourceProvider.java | 2 +- .../maven/semconv/MavenOtelSemanticAttributes.java | 4 ++-- .../maven/handler/MojoGoalExecutionHandlerTest.java | 8 +++++--- 9 files changed, 24 insertions(+), 29 deletions(-) diff --git a/maven-extension/build.gradle.kts b/maven-extension/build.gradle.kts index 30316f046..2f1585e9e 100644 --- a/maven-extension/build.gradle.kts +++ b/maven-extension/build.gradle.kts @@ -21,7 +21,7 @@ dependencies { implementation("io.opentelemetry:opentelemetry-sdk-trace") implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") - implementation("io.opentelemetry:opentelemetry-semconv") + implementation("io.opentelemetry.semconv:opentelemetry-semconv") implementation("io.opentelemetry:opentelemetry-exporter-otlp") annotationProcessor("com.google.auto.value:auto-value") @@ -60,10 +60,3 @@ tasks { } tasks.getByName("test").dependsOn("shadowJar") - -configurations.all { - resolutionStrategy { - // TODO this module still needs to be updated to the latest semconv - force("io.opentelemetry:opentelemetry-semconv:1.28.0-alpha") - } -} diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java index 6e67790f7..b377765fa 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java @@ -9,7 +9,7 @@ import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.maven.MavenGoal; import io.opentelemetry.maven.semconv.MavenOtelSemanticAttributes; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import io.opentelemetry.semconv.SemanticAttributes; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java index 20edc3084..944db49e8 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java @@ -9,9 +9,9 @@ import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.maven.MavenGoal; import io.opentelemetry.maven.semconv.MavenOtelSemanticAttributes; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.net.MalformedURLException; -import java.net.URL; +import io.opentelemetry.semconv.SemanticAttributes; +import java.net.URI; +import java.net.URISyntaxException; import java.util.Collections; import java.util.List; import org.apache.maven.artifact.Artifact; @@ -53,8 +53,8 @@ public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent execution) { // may not fully comply with the OTel "peer.service" spec as we don't know if the remote // service will be instrumented and what it "service.name" would be spanBuilder.setAttribute( - SemanticAttributes.PEER_SERVICE, new URL(artifactRepositoryUrl).getHost()); - } catch (MalformedURLException e) { + SemanticAttributes.PEER_SERVICE, new URI(artifactRepositoryUrl).getHost()); + } catch (URISyntaxException e) { logger.debug("Ignore exception parsing artifact repository URL", e); } Artifact artifact = project.getArtifact(); diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java index 36bb03cde..5d6d7e8cb 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java @@ -8,12 +8,12 @@ import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.maven.MavenGoal; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import io.opentelemetry.semconv.SemanticAttributes; import java.util.Collections; import java.util.List; import org.apache.maven.execution.ExecutionEvent; -/** See https://github.com/snyk/snyk-maven-plugin */ +/** See Snyk Maven Plugin */ final class SnykMonitorHandler implements MojoGoalExecutionHandler { /** diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java index fa7544a01..93cf68179 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java @@ -8,12 +8,12 @@ import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.maven.MavenGoal; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import io.opentelemetry.semconv.SemanticAttributes; import java.util.Collections; import java.util.List; import org.apache.maven.execution.ExecutionEvent; -/** See https://github.com/snyk/snyk-maven-plugin */ +/** See Snyk Maven Plugin */ final class SnykTestHandler implements MojoGoalExecutionHandler { /** diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java index 3bfabfe01..87cabb712 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java @@ -9,9 +9,9 @@ import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.maven.MavenGoal; import io.opentelemetry.maven.semconv.MavenOtelSemanticAttributes; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.net.MalformedURLException; -import java.net.URL; +import io.opentelemetry.semconv.SemanticAttributes; +import java.net.URI; +import java.net.URISyntaxException; import java.util.Collections; import java.util.List; import org.apache.maven.execution.ExecutionEvent; @@ -106,8 +106,8 @@ public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent executionEvent) { // may not fully comply with the OTel "peer.service" spec as we don't know if the remote // service will be instrumented and what it "service.name" would be spanBuilder.setAttribute( - SemanticAttributes.PEER_SERVICE, new URL(registryUrl).getHost()); - } catch (MalformedURLException e) { + SemanticAttributes.PEER_SERVICE, new URI(registryUrl).getHost()); + } catch (URISyntaxException e) { logger.debug("Ignore exception parsing container registry URL", e); } } diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java b/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java index 48fe6d102..2be9fe92e 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/resources/MavenResourceProvider.java @@ -9,7 +9,7 @@ import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; import io.opentelemetry.sdk.resources.Resource; -import io.opentelemetry.semconv.resource.attributes.ResourceAttributes; +import io.opentelemetry.semconv.ResourceAttributes; import org.apache.maven.rtinfo.RuntimeInformation; import org.apache.maven.rtinfo.internal.DefaultRuntimeInformation; diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/semconv/MavenOtelSemanticAttributes.java b/maven-extension/src/main/java/io/opentelemetry/maven/semconv/MavenOtelSemanticAttributes.java index cee1d5fc4..1398830ec 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/semconv/MavenOtelSemanticAttributes.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/semconv/MavenOtelSemanticAttributes.java @@ -9,14 +9,14 @@ import static io.opentelemetry.api.common.AttributeKey.stringKey; import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.semconv.resource.attributes.ResourceAttributes; +import io.opentelemetry.semconv.ResourceAttributes; import java.util.List; /** * Semantic attributes for Maven executions. * * @see io.opentelemetry.api.common.Attributes - * @see io.opentelemetry.semconv.trace.attributes.SemanticAttributes + * @see io.opentelemetry.semconv.SemanticAttributes */ public class MavenOtelSemanticAttributes { diff --git a/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java b/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java index 3680df325..cd2c2c8d2 100644 --- a/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java +++ b/maven-extension/src/test/java/io/opentelemetry/maven/handler/MojoGoalExecutionHandlerTest.java @@ -13,7 +13,7 @@ import io.opentelemetry.maven.semconv.MavenOtelSemanticAttributes; import io.opentelemetry.sdk.trace.ReadableSpan; import io.opentelemetry.sdk.trace.SdkTracerProvider; -import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import io.opentelemetry.semconv.SemanticAttributes; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; @@ -40,8 +40,10 @@ import org.junit.jupiter.api.Test; /** - * TODO Find a better solution to instantiate a MavenProject and a MojoExecutionEvent. See - * https://github.com/takari/takari-lifecycle/blob/master/takari-lifecycle-plugin/src/test/java/io/takari/maven/plugins/plugin/PluginDescriptorMojoTest.java + * TODO Find a better solution to instantiate a MavenProject and a MojoExecutionEvent. Unfortunately + * the Takari + * testing framework can't test Maven extensions. */ @SuppressWarnings({"DeduplicateConstants", "deprecation"}) public class MojoGoalExecutionHandlerTest { From d647f0a7d7fe530a55bcd153780693d55d5943da Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Fri, 29 Sep 2023 12:07:58 +0200 Subject: [PATCH 2/3] Adopt new io.opentelemetry.semconv:opentelemetry-semconv lib --- .../io/opentelemetry/maven/handler/GoogleJibBuildHandler.java | 3 ++- .../io/opentelemetry/maven/handler/MavenDeployHandler.java | 1 + .../io/opentelemetry/maven/handler/SnykMonitorHandler.java | 1 + .../java/io/opentelemetry/maven/handler/SnykTestHandler.java | 1 + .../maven/handler/SpringBootBuildImageHandler.java | 1 + 5 files changed, 6 insertions(+), 1 deletion(-) diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java index b377765fa..8f15c32a8 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java @@ -19,7 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** See https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin */ +/** See Jit Maven Plugin */ final class GoogleJibBuildHandler implements MojoGoalExecutionHandler { private static final Logger logger = LoggerFactory.getLogger(GoogleJibBuildHandler.class); @@ -29,6 +29,7 @@ public List getSupportedGoals() { MavenGoal.create("com.google.cloud.tools", "jib-maven-plugin", "build")); } + @SuppressWarnings("deprecation") // until old http semconv are dropped in 2.0 @Override public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent executionEvent) { spanBuilder.setSpanKind(SpanKind.CLIENT); diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java index 944db49e8..b10aa3fc7 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/MavenDeployHandler.java @@ -29,6 +29,7 @@ final class MavenDeployHandler implements MojoGoalExecutionHandler { private static final Logger logger = LoggerFactory.getLogger(MavenDeployHandler.class); + @SuppressWarnings("deprecation") // until old http semconv are dropped in 2.0 @Override public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent execution) { spanBuilder.setSpanKind(SpanKind.CLIENT); diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java index 5d6d7e8cb..92e8f7d17 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykMonitorHandler.java @@ -21,6 +21,7 @@ final class SnykMonitorHandler implements MojoGoalExecutionHandler { * flag `snyk -d monitor`. See Snyk CLI Cheat * Sheet */ + @SuppressWarnings("deprecation") // until old http semconv are dropped in 2.0 @Override public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent executionEvent) { spanBuilder.setSpanKind(SpanKind.CLIENT); diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java index 93cf68179..d8a2553dd 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SnykTestHandler.java @@ -21,6 +21,7 @@ final class SnykTestHandler implements MojoGoalExecutionHandler { * flag `snyk -d test`. See Snyk CLI Cheat * Sheet */ + @SuppressWarnings("deprecation") // until old http semconv are dropped in 2.0 @Override public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent executionEvent) { spanBuilder.setSpanKind(SpanKind.CLIENT); diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java index 87cabb712..a9ea1c671 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/SpringBootBuildImageHandler.java @@ -40,6 +40,7 @@ public List getSupportedGoals() { MavenGoal.create("org.springframework.boot", "spring-boot-maven-plugin", "build-image")); } + @SuppressWarnings("deprecation") // until old http semconv are dropped in 2.0 @Override public void enrichSpan(SpanBuilder spanBuilder, ExecutionEvent executionEvent) { From 0d8635ae3d0896d7f0a27a34e176b3e69b2df6c5 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Fri, 29 Sep 2023 12:48:03 +0200 Subject: [PATCH 3/3] Adopt new io.opentelemetry.semconv:opentelemetry-semconv lib --- .../opentelemetry/maven/handler/GoogleJibBuildHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java index 8f15c32a8..aced66f9e 100644 --- a/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java +++ b/maven-extension/src/main/java/io/opentelemetry/maven/handler/GoogleJibBuildHandler.java @@ -19,7 +19,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** See Jit Maven Plugin */ +/** + * See Jit Maven + * Plugin + */ final class GoogleJibBuildHandler implements MojoGoalExecutionHandler { private static final Logger logger = LoggerFactory.getLogger(GoogleJibBuildHandler.class);