diff --git a/pom.xml b/pom.xml index 9b9aab9..37f06b5 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,12 @@ spring-boot-configuration-processor true + + org.springframework.boot + spring-boot-starter-web + true + provided + diff --git a/src/main/java/com/knecon/fforesight/tracing/DefaultTracingAutoConfiguration.java b/src/main/java/com/knecon/fforesight/tracing/DefaultTracingAutoConfiguration.java index 0be674a..35608b7 100644 --- a/src/main/java/com/knecon/fforesight/tracing/DefaultTracingAutoConfiguration.java +++ b/src/main/java/com/knecon/fforesight/tracing/DefaultTracingAutoConfiguration.java @@ -1,17 +1,38 @@ package com.knecon.fforesight.tracing; +import org.springframework.boot.actuate.autoconfigure.tracing.ConditionalOnEnabledTracing; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.http.server.observation.ServerRequestObservationContext; + +import io.micrometer.observation.ObservationPredicate; import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.context.annotation.ComponentScan; @Slf4j @ComponentScan @AutoConfiguration public class DefaultTracingAutoConfiguration { + @PostConstruct public void postConstruct() { + log.info("Tracing AutoConfiguration Loaded!"); } + + @Bean + @ConditionalOnEnabledTracing + ObservationPredicate actuatorServerContextPredicate() { + + // There might be a better solution soon: https://github.com/spring-projects/spring-boot/issues/34801 + return (name, context) -> { + if (name.equals("http.server.requests") && context instanceof ServerRequestObservationContext serverContext) { + return !serverContext.getCarrier().getRequestURI().startsWith("/actuator"); + } + return true; + }; + } + }