From 8d03edf3783f914dd9081bc25be674710582b4cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Wed, 20 Dec 2023 12:22:16 +0100 Subject: [PATCH] RED-1137: Do not observe actuator endpoints --- pom.xml | 6 +++++ .../DefaultTracingAutoConfiguration.java | 25 +++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) 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; + }; + } + }