Back off if spring-boot-opentelemetry is missing
Closes gh-46303
This commit is contained in:
parent
aff6ed3830
commit
bd1df38ce0
|
@ -51,7 +51,7 @@ import org.springframework.core.task.VirtualThreadTaskExecutor;
|
|||
before = { CompositeMeterRegistryAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class },
|
||||
after = MetricsAutoConfiguration.class)
|
||||
@ConditionalOnBean(Clock.class)
|
||||
@ConditionalOnClass(OtlpMeterRegistry.class)
|
||||
@ConditionalOnClass({ OtlpMeterRegistry.class, OpenTelemetryProperties.class })
|
||||
@ConditionalOnEnabledMetricsExport("otlp")
|
||||
@EnableConfigurationProperties({ OtlpMetricsProperties.class, OpenTelemetryProperties.class })
|
||||
public final class OtlpMetricsExportAutoConfiguration {
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.junit.jupiter.api.condition.JRE;
|
|||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.otlp.OtlpMetricsExportAutoConfiguration.PropertiesOtlpMetricsConnectionDetails;
|
||||
import org.springframework.boot.test.context.FilteredClassLoader;
|
||||
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.assertj.ScheduledExecutorServiceAssert;
|
||||
|
@ -41,6 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
* Tests for {@link OtlpMetricsExportAutoConfiguration}.
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
* @author Moritz Halbritter
|
||||
*/
|
||||
class OtlpMetricsExportAutoConfigurationTests {
|
||||
|
||||
|
@ -148,6 +150,13 @@ class OtlpMetricsExportAutoConfigurationTests {
|
|||
.run(this::assertHasCustomMetricsSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldBackOffIfSpringBootOpenTelemetryIsMissing() {
|
||||
this.contextRunner.withUserConfiguration(BaseConfiguration.class)
|
||||
.withClassLoader(new FilteredClassLoader("org.springframework.boot.opentelemetry"))
|
||||
.run((context) -> assertThat(context).doesNotHaveBean(OtlpMetricsExportAutoConfiguration.class));
|
||||
}
|
||||
|
||||
private void assertHasCustomMetricsSender(AssertableApplicationContext context) {
|
||||
assertThat(context).hasSingleBean(OtlpMeterRegistry.class);
|
||||
OtlpMeterRegistry registry = context.getBean(OtlpMeterRegistry.class);
|
||||
|
|
Loading…
Reference in New Issue