Open Tracing 이란 무엇인가
⚡️ 탄생 배경
Microservice Architecture 를 구현하고 이를 클라우드 환경에 띄우면서, 서비스의 로깅과 모니터링이 더욱 까다롭고 중요해졌습니다.
MSA 에서는 하나의 요청이 내부적으로 여러개의 서비스를 거쳐 동작하므로, 어느 구간에서 이슈가 발생했는지 추적하기 위해 '분산 로그 추적 시스템' 이 필요해졌습니다.
⚒ 작동 원리
클라이언트 → 서버 로의 호출을 하나의 Trace 로 정의하고, 서비스 컴포넌트간의 호출은 Span 으로 정의합니다.
하나의 요청을 추적하기 위해서 같은 TraceId 를 사용하고, 서비스 컴포넌트간의 호출은 다른 SpanId 를 사용합니다.
이에 따라, 전체 트랜잭션 시간은 Trace 로 추적하고, 서비스별 소요시간은 Span 으로 추적합니다.
📭 Open Source 종류
Zipkin (트위터)
Jagger
Opencensus
✔️ Cross-Process Transaction / Distributed Transaction 의미 - 여러개의 서비스, 플랫폼에서 이루어지는 트랜잭션의 전체 경로를 수집하여 추적한다는 의미입니다.
✔️ 더 알아볼것 - AOP
spring slueth log formatting 은 json 으로 할필요 없다?
스코프. 쓰레드 단위냐?
web flux 에서 execute 하여 페러럴하게 동작할때 서로가 같은 mdc 를 쓰나?
Last updated