Skip to content

Commit 214f060

Browse files
committed
Auto-configure OtlpHttpSpanExporter only if property is set
- Remove the default value of 'management.otlp.tracing.endpoint' Closes gh-35596
1 parent cd018af commit 214f060

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
3131
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3232
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
33+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3334
import org.springframework.boot.context.properties.EnableConfigurationProperties;
3435
import org.springframework.context.annotation.Bean;
3536

@@ -45,6 +46,7 @@
4546
* define an {@link OtlpGrpcSpanExporter} and this auto-configuration will back off.
4647
*
4748
* @author Jonatan Ivanov
49+
* @author Moritz Halbritter
4850
* @since 3.1.0
4951
*/
5052
@AutoConfiguration
@@ -56,6 +58,7 @@ public class OtlpAutoConfiguration {
5658
@Bean
5759
@ConditionalOnMissingBean(value = OtlpHttpSpanExporter.class,
5860
type = "io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter")
61+
@ConditionalOnProperty(prefix = "management.otlp.tracing", name = "endpoint")
5962
OtlpHttpSpanExporter otlpHttpSpanExporter(OtlpProperties properties) {
6063
OtlpHttpSpanExporterBuilder builder = OtlpHttpSpanExporter.builder()
6164
.setEndpoint(properties.getEndpoint())

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class OtlpProperties {
3434
/**
3535
* URL to the OTel collector's HTTP API.
3636
*/
37-
private String endpoint = "http://localhost:4318/v1/traces";
37+
private String endpoint;
3838

3939
/**
4040
* Call timeout for the OTel Collector to process an exported batch of data. This

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpAutoConfigurationTests.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,23 @@
3333
* Tests for {@link OtlpAutoConfiguration}.
3434
*
3535
* @author Jonatan Ivanov
36+
* @author Moritz Halbritter
3637
*/
3738
class OtlpAutoConfigurationTests {
3839

3940
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
4041
.withConfiguration(AutoConfigurations.of(OtlpAutoConfiguration.class));
4142

43+
@Test
44+
void shouldNotSupplyBeansIfPropertyIsNotSet() {
45+
this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(OtlpHttpSpanExporter.class));
46+
}
47+
4248
@Test
4349
void shouldSupplyBeans() {
44-
this.contextRunner.run((context) -> assertThat(context).hasSingleBean(OtlpHttpSpanExporter.class)
45-
.hasSingleBean(SpanExporter.class));
50+
this.contextRunner.withPropertyValues("management.otlp.tracing.endpoint=http://localhost:4318/v1/traces")
51+
.run((context) -> assertThat(context).hasSingleBean(OtlpHttpSpanExporter.class)
52+
.hasSingleBean(SpanExporter.class));
4653
}
4754

4855
@Test

0 commit comments

Comments
 (0)