Skip to content

Commit b4541d9

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 2982d0f commit b4541d9

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
2323
import io.opentelemetry.sdk.trace.SdkTracerProvider;
2424

25+
import org.springframework.boot.actuate.autoconfigure.tracing.ConditionalOnEnabledTracing;
2526
import org.springframework.boot.autoconfigure.AutoConfiguration;
2627
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2728
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -44,10 +45,12 @@
4445
* @author Jonatan Ivanov
4546
* @author Moritz Halbritter
4647
* @author Eddú Meléndez
48+
* @author Yanming Zhou
4749
* @since 3.4.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-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConfigurations.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder;
2626

2727
import org.springframework.beans.factory.ObjectProvider;
28-
import org.springframework.boot.actuate.autoconfigure.tracing.ConditionalOnEnabledTracing;
2928
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3029
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3130
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -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-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/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)