Fix autoconfigure for spring boot 3 (#7784)
See https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7312
This commit is contained in:
parent
13d5246489
commit
54d7241c05
|
|
@ -19,6 +19,8 @@ dependencies {
|
|||
implementation(project(":instrumentation:spring:spring-kafka-2.7:library"))
|
||||
implementation(project(":instrumentation:spring:spring-web:spring-web-3.1:library"))
|
||||
implementation(project(":instrumentation:spring:spring-webmvc:spring-webmvc-5.3:library"))
|
||||
implementation(project(":instrumentation:spring:spring-webmvc:spring-webmvc-6.0:library"))
|
||||
compileOnly("jakarta.servlet:jakarta.servlet-api:5.0.0")
|
||||
implementation(project(":instrumentation:spring:spring-webflux-5.0:library"))
|
||||
implementation(project(":instrumentation:micrometer:micrometer-1.5:library"))
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import org.springframework.web.servlet.DispatcherServlet;
|
|||
@Configuration
|
||||
@EnableConfigurationProperties(WebMvcProperties.class)
|
||||
@ConditionalOnProperty(prefix = "otel.springboot.web", name = "enabled", matchIfMissing = true)
|
||||
@ConditionalOnClass({OncePerRequestFilter.class, DispatcherServlet.class})
|
||||
@ConditionalOnClass({Filter.class, OncePerRequestFilter.class, DispatcherServlet.class})
|
||||
@ConditionalOnBean(OpenTelemetry.class)
|
||||
public class WebMvcFilterAutoConfiguration {
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.instrumentation.spring.autoconfigure.webmvc;
|
||||
|
||||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.instrumentation.spring.webmvc.v6_0.SpringWebMvcTelemetry;
|
||||
import jakarta.servlet.Filter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.filter.OncePerRequestFilter;
|
||||
import org.springframework.web.servlet.DispatcherServlet;
|
||||
|
||||
/** Configures {@link SpringWebMvcTelemetry} for tracing. */
|
||||
@Configuration
|
||||
@EnableConfigurationProperties(WebMvcProperties.class)
|
||||
@ConditionalOnProperty(prefix = "otel.springboot.web", name = "enabled", matchIfMissing = true)
|
||||
@ConditionalOnClass({Filter.class, OncePerRequestFilter.class, DispatcherServlet.class})
|
||||
@ConditionalOnBean(OpenTelemetry.class)
|
||||
public class WebMvcFilterAutoConfigurationSpring6 {
|
||||
|
||||
@Bean
|
||||
public Filter otelWebMvcInstrumentationFilter(OpenTelemetry openTelemetry) {
|
||||
return SpringWebMvcTelemetry.create(openTelemetry).createServletFilter();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue