Skip to content

Commit 29df51f

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 29df51f

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
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
@@ -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 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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
*
3939
* @author Moritz Halbritter
4040
* @author Eddú Meléndez
41+
* @author Yanming Zhou
4142
*/
4243
final class OtlpTracingConfigurations {
4344

@@ -77,7 +78,6 @@ public String getUrl(Transport transport) {
7778
@Configuration(proxyBeanMethods = false)
7879
@ConditionalOnMissingBean({ OtlpGrpcSpanExporter.class, OtlpHttpSpanExporter.class })
7980
@ConditionalOnBean(OtlpTracingConnectionDetails.class)
80-
@ConditionalOnEnabledTracing("otlp")
8181
static class Exporters {
8282

8383
@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)