From 61aef2e413d7e2ed24443d2ccd3171ef181ab72e Mon Sep 17 00:00:00 2001 From: Mateusz Rzeszutek Date: Tue, 2 Aug 2022 09:35:19 +0200 Subject: [PATCH] Clean up spring-boot-autoconfigure exporter logic (#6374) --- .../logging/LoggingExporterProperties.java | 4 +- ...oggingMetricExporterAutoConfiguration.java | 22 ++++++-- .../LoggingSpanExporterAutoConfiguration.java | 20 +++++-- .../MetricExporterAutoConfigurationTest.java | 55 +++++++++++++++++++ .../SpanExporterAutoConfigurationTest.java | 54 ++++++++++++++++++ ...egerSpanExporterAutoConfigurationTest.java | 4 +- ...ngMetricExporterAutoConfigurationTest.java | 5 +- ...gingSpanExporterAutoConfigurationTest.java | 14 ++--- ...pkinSpanExporterAutoConfigurationTest.java | 4 +- .../starters/otlp-exporter-starter/README.md | 36 ------------ .../otlp-exporter-starter/build.gradle.kts | 14 ----- .../starters/spring-starter/build.gradle.kts | 1 + settings.gradle.kts | 1 - 13 files changed, 153 insertions(+), 81 deletions(-) create mode 100644 instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/MetricExporterAutoConfigurationTest.java create mode 100644 instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/SpanExporterAutoConfigurationTest.java rename instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/{ => jaeger}/JaegerSpanExporterAutoConfigurationTest.java (92%) rename instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/{ => zipkin}/ZipkinSpanExporterAutoConfigurationTest.java (91%) delete mode 100644 instrumentation/spring/starters/otlp-exporter-starter/README.md delete mode 100644 instrumentation/spring/starters/otlp-exporter-starter/build.gradle.kts diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingExporterProperties.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingExporterProperties.java index 63f8b9db2c..c0e8402f6b 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingExporterProperties.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingExporterProperties.java @@ -14,7 +14,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "otel.exporter.logging") public final class LoggingExporterProperties { - private boolean enabled = true; + private boolean enabled = false; private final SignalProperties traces = new SignalProperties(); private final SignalProperties metrics = new SignalProperties(); @@ -36,7 +36,7 @@ public final class LoggingExporterProperties { public static class SignalProperties { - private boolean enabled = true; + private boolean enabled = false; public boolean isEnabled() { return enabled; diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfiguration.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfiguration.java index 170f643ae3..860e979053 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfiguration.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfiguration.java @@ -9,27 +9,37 @@ import io.opentelemetry.exporter.logging.LoggingMetricExporter; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; /** Configures {@link LoggingSpanExporter} bean for tracing. */ @Configuration @EnableConfigurationProperties(LoggingExporterProperties.class) @AutoConfigureBefore(OpenTelemetryAutoConfiguration.class) -@ConditionalOnProperty( - prefix = "otel.exporter.logging", - name = {"enabled", "metrics.enabled"}, - matchIfMissing = true) +@Conditional(LoggingMetricExporterAutoConfiguration.AnyPropertyEnabled.class) @ConditionalOnClass(LoggingMetricExporter.class) public class LoggingMetricExporterAutoConfiguration { @Bean - @ConditionalOnMissingBean public LoggingMetricExporter otelLoggingMetricExporter() { return LoggingMetricExporter.create(); } + + static final class AnyPropertyEnabled extends AnyNestedCondition { + + AnyPropertyEnabled() { + super(ConfigurationPhase.PARSE_CONFIGURATION); + } + + @ConditionalOnProperty("otel.exporter.logging.enabled") + static class LoggingEnabled {} + + @ConditionalOnProperty("otel.exporter.logging.metrics.enabled") + static class LoggingMetricsEnabled {} + } } diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfiguration.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfiguration.java index 20af6bb4e2..a8ac9c501f 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfiguration.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfiguration.java @@ -8,21 +8,20 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; /** Configures {@link LoggingSpanExporter} bean for tracing. */ @Configuration @EnableConfigurationProperties(LoggingExporterProperties.class) @AutoConfigureBefore(OpenTelemetryAutoConfiguration.class) -@ConditionalOnProperty( - prefix = "otel.exporter.logging", - name = {"enabled", "traces.enabled"}, - matchIfMissing = true) +@Conditional(LoggingSpanExporterAutoConfiguration.AnyPropertyEnabled.class) @ConditionalOnClass(LoggingSpanExporter.class) public class LoggingSpanExporterAutoConfiguration { @@ -31,4 +30,17 @@ public class LoggingSpanExporterAutoConfiguration { public LoggingSpanExporter otelLoggingSpanExporter() { return LoggingSpanExporter.create(); } + + static final class AnyPropertyEnabled extends AnyNestedCondition { + + AnyPropertyEnabled() { + super(ConfigurationPhase.PARSE_CONFIGURATION); + } + + @ConditionalOnProperty("otel.exporter.logging.enabled") + static class LoggingEnabled {} + + @ConditionalOnProperty("otel.exporter.logging.traces.enabled") + static class LoggingTracesEnabled {} + } } diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/MetricExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/MetricExporterAutoConfigurationTest.java new file mode 100644 index 0000000000..6d42070a16 --- /dev/null +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/MetricExporterAutoConfigurationTest.java @@ -0,0 +1,55 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.instrumentation.spring.autoconfigure.exporters; + +import static org.assertj.core.api.Assertions.assertThat; + +import io.opentelemetry.exporter.logging.LoggingMetricExporter; +import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; +import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging.LoggingMetricExporterAutoConfiguration; +import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp.OtlpMetricExporterAutoConfiguration; +import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +class MetricExporterAutoConfigurationTest { + + private final ApplicationContextRunner contextRunner = + new ApplicationContextRunner() + .withConfiguration( + AutoConfigurations.of( + OtlpMetricExporterAutoConfiguration.class, + LoggingMetricExporterAutoConfiguration.class)); + + @Test + void defaultConfiguration() { + contextRunner.run( + context -> { + assertThat(context.getBean("otelOtlpGrpcMetricExporter", OtlpGrpcMetricExporter.class)) + .as("OTLP exporter is enabled by default") + .isNotNull(); + assertThat(context.containsBean("otelLoggingMetricExporter")) + .as("Logging exporter is not created unless explicitly configured") + .isFalse(); + }); + } + + @Test + void loggingEnabledByConfiguration() { + contextRunner + .withPropertyValues("otel.exporter.logging.enabled=true") + .run( + context -> { + assertThat( + context.getBean("otelOtlpGrpcMetricExporter", OtlpGrpcMetricExporter.class)) + .as("OTLP exporter is present even with logging enabled") + .isNotNull(); + assertThat(context.getBean("otelLoggingMetricExporter", LoggingMetricExporter.class)) + .as("Logging exporter is explicitly enabled") + .isNotNull(); + }); + } +} diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/SpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/SpanExporterAutoConfigurationTest.java new file mode 100644 index 0000000000..81f805bcc9 --- /dev/null +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/SpanExporterAutoConfigurationTest.java @@ -0,0 +1,54 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.instrumentation.spring.autoconfigure.exporters; + +import static org.assertj.core.api.Assertions.assertThat; + +import io.opentelemetry.exporter.logging.LoggingSpanExporter; +import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; +import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging.LoggingSpanExporterAutoConfiguration; +import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.otlp.OtlpSpanExporterAutoConfiguration; +import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +class SpanExporterAutoConfigurationTest { + + private final ApplicationContextRunner contextRunner = + new ApplicationContextRunner() + .withConfiguration( + AutoConfigurations.of( + OtlpSpanExporterAutoConfiguration.class, + LoggingSpanExporterAutoConfiguration.class)); + + @Test + void defaultConfiguration() { + contextRunner.run( + context -> { + assertThat(context.getBean("otelOtlpGrpcSpanExporter", OtlpGrpcSpanExporter.class)) + .as("OTLP exporter is enabled by default") + .isNotNull(); + assertThat(context.containsBean("otelLoggingSpanExporter")) + .as("Logging exporter is not created unless explicitly configured") + .isFalse(); + }); + } + + @Test + void loggingEnabledByConfiguration() { + contextRunner + .withPropertyValues("otel.exporter.logging.enabled=true") + .run( + context -> { + assertThat(context.getBean("otelOtlpGrpcSpanExporter", OtlpGrpcSpanExporter.class)) + .as("OTLP exporter is present even with logging enabled") + .isNotNull(); + assertThat(context.getBean("otelLoggingSpanExporter", LoggingSpanExporter.class)) + .as("Logging exporter is explicitly enabled") + .isNotNull(); + }); + } +} diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/JaegerSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java similarity index 92% rename from instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/JaegerSpanExporterAutoConfigurationTest.java rename to instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java index 1dece99afe..b1d0bf4492 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/JaegerSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java @@ -3,14 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.spring.autoconfigure.exporters; +package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger; import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger.JaegerSpanExporterAutoConfiguration; -import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.jaeger.JaegerSpanExporterProperties; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java index f5db0e577a..5b1e8355e1 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java @@ -60,9 +60,6 @@ class LoggingMetricExporterAutoConfigurationTest { @Test void noProperties() { - runner.run( - context -> - assertThat(context.getBean("otelLoggingMetricExporter", LoggingMetricExporter.class)) - .isNotNull()); + runner.run(context -> assertThat(context.containsBean("otelLoggingMetricExporter")).isFalse()); } } diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java index cd53f35204..34abb3200e 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java @@ -27,7 +27,7 @@ class LoggingSpanExporterAutoConfigurationTest { @Test @DisplayName("when exporters are ENABLED should initialize LoggingSpanExporter bean") void loggingEnabled() { - this.contextRunner + contextRunner .withPropertyValues("otel.exporter.logging.enabled=true") .run( context -> @@ -37,7 +37,7 @@ class LoggingSpanExporterAutoConfigurationTest { @Test void loggingTracesEnabled() { - this.contextRunner + contextRunner .withPropertyValues("otel.exporter.logging.traces.enabled=true") .run( context -> @@ -48,7 +48,7 @@ class LoggingSpanExporterAutoConfigurationTest { @Test @DisplayName("when exporters are DISABLED should NOT initialize LoggingSpanExporter bean") void loggingDisabled() { - this.contextRunner + contextRunner .withPropertyValues("otel.exporter.logging.enabled=false") .run(context -> assertThat(context.containsBean("otelLoggingSpanExporter")).isFalse()); } @@ -56,7 +56,7 @@ class LoggingSpanExporterAutoConfigurationTest { @Test @DisplayName("when exporters are DISABLED should NOT initialize LoggingSpanExporter bean") void loggingTracesDisabled() { - this.contextRunner + contextRunner .withPropertyValues("otel.exporter.logging.traces.enabled=false") .run(context -> assertThat(context.containsBean("otelLoggingSpanExporter")).isFalse()); } @@ -65,9 +65,7 @@ class LoggingSpanExporterAutoConfigurationTest { @DisplayName( "when exporter enabled property is MISSING should initialize LoggingSpanExporter bean") void exporterPresentByDefault() { - this.contextRunner.run( - context -> - assertThat(context.getBean("otelLoggingSpanExporter", LoggingSpanExporter.class)) - .isNotNull()); + contextRunner.run( + context -> assertThat(context.containsBean("otelLoggingSpanExporter")).isFalse()); } } diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/ZipkinSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java similarity index 91% rename from instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/ZipkinSpanExporterAutoConfigurationTest.java rename to instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java index 4147826e69..7e6aa89a45 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/ZipkinSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java @@ -3,14 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.spring.autoconfigure.exporters; +package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin; import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin.ZipkinSpanExporterAutoConfiguration; -import io.opentelemetry.instrumentation.spring.autoconfigure.exporters.zipkin.ZipkinSpanExporterProperties; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; diff --git a/instrumentation/spring/starters/otlp-exporter-starter/README.md b/instrumentation/spring/starters/otlp-exporter-starter/README.md deleted file mode 100644 index 29a1d028fe..0000000000 --- a/instrumentation/spring/starters/otlp-exporter-starter/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# OpenTelemetry OTLP Exporter Starter - -OpenTelemetry OTLP Exporter Starter is a starter package that includes the opentelemetry-api, opentelemetry-sdk, opentelemetry-extension-annotations, opentelmetry-logging-exporter, opentelemetry-spring-boot-autoconfigurations and spring framework starters required to setup distributed tracing. It also provides the [opentelemetry-exporters-otlp](https://github.com/open-telemetry/opentelemetry-java/tree/main/exporters/otlp) artifact and corresponding exporter auto-configuration. Check out [opentelemetry-spring-boot-autoconfigure](../../spring-boot-autoconfigure/README.md#features) for the list of supported libraries and features. - -## Quickstart - -### Add these dependencies to your project. - -Replace `OPENTELEMETRY_VERSION` with the latest stable [release](https://search.maven.org/search?q=g:io.opentelemetry). - - Minimum version: `1.1.0` - - -#### Maven - -```xml - - - - io.opentelemetry.instrumentation - opentelemetry-otlp-exporter-starter - OPENTELEMETRY_VERSION - - - -``` - -#### Gradle - -```groovy -implementation("io.opentelemetry.instrumentation:opentelemetry-otlp-exporter-starter:OPENTELEMETRY_VERSION") -``` - -### Starter Guide - -Check out [OpenTelemetry Manual Instrumentation](https://opentelemetry.io/docs/instrumentation/java/manual/) to learn more about -using the OpenTelemetry API to instrument your code. diff --git a/instrumentation/spring/starters/otlp-exporter-starter/build.gradle.kts b/instrumentation/spring/starters/otlp-exporter-starter/build.gradle.kts deleted file mode 100644 index 1dba59fe20..0000000000 --- a/instrumentation/spring/starters/otlp-exporter-starter/build.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - id("otel.java-conventions") - id("otel.publish-conventions") -} - -group = "io.opentelemetry.instrumentation" - -val versions: Map by project - -dependencies { - api("org.springframework.boot:spring-boot-starter:${versions["org.springframework.boot"]}") - api(project(":instrumentation:spring:starters:spring-starter")) - api("io.opentelemetry:opentelemetry-exporter-otlp") -} diff --git a/instrumentation/spring/starters/spring-starter/build.gradle.kts b/instrumentation/spring/starters/spring-starter/build.gradle.kts index 0f77714382..6038b14267 100644 --- a/instrumentation/spring/starters/spring-starter/build.gradle.kts +++ b/instrumentation/spring/starters/spring-starter/build.gradle.kts @@ -14,6 +14,7 @@ dependencies { api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi") api("io.opentelemetry:opentelemetry-api") api("io.opentelemetry:opentelemetry-exporter-logging") + api("io.opentelemetry:opentelemetry-exporter-otlp") api("io.opentelemetry:opentelemetry-sdk") api(project(":instrumentation-annotations")) } diff --git a/settings.gradle.kts b/settings.gradle.kts index 2afcc8847d..7fccb475d4 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -447,7 +447,6 @@ include(":instrumentation:spring:spring-ws-2.0:javaagent") include(":instrumentation:spring:spring-boot-autoconfigure") include(":instrumentation:spring:starters:spring-starter") include(":instrumentation:spring:starters:jaeger-exporter-starter") -include(":instrumentation:spring:starters:otlp-exporter-starter") include(":instrumentation:spring:starters:zipkin-exporter-starter") include(":instrumentation:spymemcached-2.12:javaagent") include(":instrumentation:struts-2.3:javaagent")