Skip to content

Commit 213d068

Browse files
committed
Skip registering all OTLP tracing related beans if tracing is disabled
Before this commit, `OtlpTracingProperties` and `OtlpTracingConnectionDetails` are registered even if tracing is disabled. Signed-off-by: Yanming Zhou <[email protected]>
1 parent 5db3cac commit 213d068

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/autoconfigure/otlp/OtlpTracingAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2727
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2828
import org.springframework.boot.context.properties.EnableConfigurationProperties;
29+
import org.springframework.boot.tracing.autoconfigure.ConditionalOnEnabledTracing;
2930
import org.springframework.context.annotation.Import;
3031

3132
/**
@@ -44,10 +45,12 @@
4445
* @author Jonatan Ivanov
4546
* @author Moritz Halbritter
4647
* @author Eddú Meléndez
48+
* @author Yanming Zhou
4749
* @since 4.0.0
4850
*/
4951
@AutoConfiguration
5052
@ConditionalOnClass({ OtelTracer.class, SdkTracerProvider.class, OpenTelemetry.class, OtlpHttpSpanExporter.class })
53+
@ConditionalOnEnabledTracing("otlp")
5154
@EnableConfigurationProperties(OtlpTracingProperties.class)
5255
@Import({ OtlpTracingConfigurations.ConnectionDetails.class, OtlpTracingConfigurations.Exporters.class })
5356
public class OtlpTracingAutoConfiguration {

spring-boot-project/spring-boot-tracing/src/main/java/org/springframework/boot/tracing/autoconfigure/otlp/OtlpTracingConfigurations.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
31-
import org.springframework.boot.tracing.autoconfigure.ConditionalOnEnabledTracing;
3231
import org.springframework.context.annotation.Bean;
3332
import org.springframework.context.annotation.Configuration;
3433
import org.springframework.util.Assert;
@@ -38,6 +37,7 @@
3837
*
3938
* @author Moritz Halbritter
4039
* @author Eddú Meléndez
40+
* @author Yanming Zhou
4141
*/
4242
final class OtlpTracingConfigurations {
4343

@@ -77,7 +77,6 @@ public String getUrl(Transport transport) {
7777
@Configuration(proxyBeanMethods = false)
7878
@ConditionalOnMissingBean({ OtlpGrpcSpanExporter.class, OtlpHttpSpanExporter.class })
7979
@ConditionalOnBean(OtlpTracingConnectionDetails.class)
80-
@ConditionalOnEnabledTracing("otlp")
8180
static class Exporters {
8281

8382
@Bean

spring-boot-project/spring-boot-tracing/src/test/java/org/springframework/boot/tracing/autoconfigure/otlp/OtlpTracingAutoConfigurationTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
* @author Jonatan Ivanov
4545
* @author Moritz Halbritter
4646
* @author Eddú Meléndez
47+
* @author Yanming Zhou
4748
*/
4849
class OtlpTracingAutoConfigurationTests {
4950

@@ -71,6 +72,15 @@ void shouldSupplyBeans() {
7172
.hasSingleBean(SpanExporter.class));
7273
}
7374

75+
@Test
76+
void shouldNotSupplyBeansIfTracingDisabled() {
77+
this.tracingDisabledContextRunner
78+
.withPropertyValues("management.otlp.tracing.endpoint=http://localhost:4318/v1/traces")
79+
.run((context) -> assertThat(context).doesNotHaveBean(OtlpTracingProperties.class)
80+
.doesNotHaveBean(OtlpTracingConnectionDetails.class)
81+
.doesNotHaveBean(SpanExporter.class));
82+
}
83+
7484
@Test
7585
void shouldCustomizeHttpTransportWithProperties() {
7686
this.contextRunner

0 commit comments

Comments
 (0)