diff --git a/service/src/main/kotlin/com/sangdol/roomescape/common/config/TraceConfig.kt b/service/src/main/kotlin/com/sangdol/roomescape/common/config/TraceConfig.kt new file mode 100644 index 00000000..c7104bf1 --- /dev/null +++ b/service/src/main/kotlin/com/sangdol/roomescape/common/config/TraceConfig.kt @@ -0,0 +1,28 @@ +package com.sangdol.roomescape.common.config + +import io.micrometer.observation.ObservationPredicate +import jakarta.servlet.http.HttpServletRequest +import org.springframework.beans.factory.annotation.Value +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.http.server.observation.ServerRequestObservationContext + +@Configuration +class TraceConfig( + @Value("\${management.endpoints.web.base-path}") private val actuatorPath: String +) { + + @Bean + fun excludeActuatorPredicate(): ObservationPredicate { + return ObservationPredicate { _, context -> + if (context !is ServerRequestObservationContext) { + return@ObservationPredicate true + } + + val servletRequest: HttpServletRequest = context.carrier + val requestUri = servletRequest.requestURI + + !requestUri.contains(actuatorPath) + } + } +}