기타/관리

SpringBoot 3 에서 Zipkin 서버를 통한 분산 추적 해보기

펭귄힝 2024. 7. 5. 17:54

 

 

 

MSA 환경의 각 서비스들을 호출하는 과정에서 Zipkin 서버를 설치하고 이를 활용하여 분산 추적을 해보려고 한다.

 

 

 

 

 

 

공식 홈페이지에서 zipkin 파일을 다운로드하고 실행해준다. (기본적으로 9411 포트로 열린다.)

 

 

 

 

 

 

그리고 프로젝트에 위와 같이 필요한 의존성들을 추가해준다. 만약 OpenFeign 을 사용하지 않는다면 맨 마지막 줄에 있는 의존성은 추가해주지 않아도 된다.

 

내부적으로 Micrometer 를 통해 zipkin 서버로 데이터를 전송하기 때문에 Micrometer 관련 의존성들이 추가되는 것을 확인할 수 있다.

 

 

 

 

 

 

그리고 위와 같이 프로젝트의 yml 파일을 열어서 설정을 추가해준다.

management.tracing.sampling.proability : 보내게 될 데이터의 빈도를 설정 (0.1 ~ 1.0)

management.zipkin.tracing.endpoint : zipkin 서버의 EndPoint 주소를 입력

 

 

 

 

 

 

로그를 찍어낼 간단한 로그 AOP 클래스를 추가해준다.

 

 

 

 

 

 

이제 각 마이크로 서비스들을 실행시키고 API 요청을 보낸다.

 

위 API 요청은 review-service >> platform-service 의 흐름으로 요청을 보내게 된다.

 

 

 

 

 

 

review-service 의 로그를 보면 TracingID 값이 잘 나타나는 것을 볼 수 있다. 이제 platform-service 에서도 이 TracingID 가 동일하게 나타나는지 확인해보자.

 

 

 

 

 

 

역시나 같은 TracingID 가 나타난다. 이제 이걸 Zipkin 서버에 검색해서 확인해보면

 

 

 

 

 

 

이렇게 해당 API 요청에서 어떤 서비스를 호출했고 얼마나 많은 시간이 소요되었는지 등의 상세한 정보를 확인할 수 있다.