Observability :: Spring Boot
spring.io
requirement
로그에 추적가능한 id를 남기고 싶다.
로그 호출 시 일일이 포함시키지 않고 자동으로 설정되게 하고 싶다.
MicroService 로 여러 서비스가 연계될때 동일한 식별자로 연결되게 하고 싶다.
related object
Spring Boot uses Micrometer Observation
Facade 역할을 하는 Micrometer 를 이용하여 tracing 구현체에 따라 적용 가능. (openzipkin, opentelemetry ... )
Webflux는 Reactive 수행으로 Thread간 이동이 빈번하여 Tracing Context Propagation 이 필수
Spring Boot Actuator 와 결합하여 간단한 설정만으로 기능 제공
implementation
build.gradle
dependencies {
...
implementation org.springframework.boot:spring-boot-starter-actuator
// case 1 for OpenZipkin Brave
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
// case 2 for opentelemetry
// implementation 'io.micrometer:micrometer-tracing-bridge-otel'
...
}
or logback-spring.xml
<pattern>... %X{traceId:-NONE} ... </pattern>
example
2024-06-08T20:38:08.217+02:00 INFO [94739f90c9e13ec3a7048d5dfba4c499,61c824a2d63bbe99] 1234 --- [ctor-http-nio-2] lepffm.Service2Controller : logging...
남기는 말
servlet project 인 경우 spring.reactor.context-propagation
만 제거하면 됨
reference
https://docs.spring.io/spring-boot/reference/actuator/observability.html
https://docs.spring.io/spring-boot/reference/actuator/tracing.html
https://micrometer.io/docs/tracing
원문
https://github.com/lepffm/issuance/issues/176
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 6월 8일 오전 2:07
1.●고통속에서 무엇을 배우냐는 선택이다.
2.●내가 행복해야 남도 행복하게 해줄수 있다.
요
... 더 보기올
... 더 보기스
... 더 보기