Spring Boot 3.x Micrometer Tracing
Spring Cloud Sleuth will not work with Spring Boot 3.x onward. Please check Spring Cloud Sleuth 3.1 Migration Guide.
Spring Cloud Sleuth ํ๋ก์ ํธ๋ ๋์ด์ Spring Boot 3.x ์์ ํธํ์ฑ์ ์ง์ํ์ง ์๋๋ค. ๋ถ์ฐ ์ถ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ฉํ๊ธฐ ์ํ ์๋ ๊ตฌ์ฑ์ด Spring Cloud Sleuth ์์ Spring Boot๋ก ์ด๋๋์ด์๊ธฐ ๋๋ฌธ์ด๋ค. Spring Boot 3.x ์์๋ ๋์ด์ Spring Cloud Sleuth๋ ํ์ํ์ง ์์ผ๋ฉฐ Micrometer Tracing
์ ๋ํ ์ค์ ์ ์ํํ๋ฉด ๋๋ค.
build.gradleplugins { id 'org.springframework.boot' version '3.1.3' id 'io.spring.dependency-management' version '1.1.3' } dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'io.zipkin.reporter2:zipkin-reporter-brave' developmentOnly 'org.springframework.boot:spring-boot-docker-compose' // Optional }
AutoConfigure Micrometer Tracing
์คํ๋ง ๋ถํธ ์๋ ๊ตฌ์ฑ์ ํฌํจ๋์ด ์๋ BraveAutoConfiguration๊ณผ ZipkinAutoConfiguration๊ฐ ์๋์ผ๋ก ์ ์ฉ๋๋ฏ๋ก ์๋์ ๊ฐ์ด TracingProperties ์์ฑ์ ์ํ๋๋๋ก ์ ์ฉํ๋ฉด ๋๋ค. ๋ณธ ๊ธ์์๋ Zipkin๊ณผ์ ์ฐ๋์ ์ํด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ B3 ๋ฐฉ์์ ์ง์ ํ์๋ค.
application.ymlmanagement.tracing: propagation.type: b3 sampling.probability: 1.0 logging.pattern.level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]"
Automatic Context Propagation for WebFlux
Spring Cloud Gateway์ ๊ฐ์ด WebFlux ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ Project Reactor 3์ Context Propagation์ ๋ํ ์๋ ๊ตฌ์ฑ์ ์ํด์ ์๋์ ๊ฐ์ด Hooks.enableAutomaticContextPropagation์ ๋ฉ์ธ ํจ์์์ ํธ์ถํด์ผํ๋ค. ๋ ์์ธํ ๋ด์ฉ์ Context Propagation with Project Reactor 3 - Unified Bridging between Reactive and Imperative๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import reactor.core.publisher.Hooks;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
Hooks.enableAutomaticContextPropagation();
}
}