MSA

[MSA] Spring Boot - Zipkin 이란? Spring Cloud Sleuth Example

차노도리 2023. 5. 14. 00:05

https://zipkin.io/

 

OpenZipkin · A distributed tracing system

Zipkin Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in service architectures. Features include both the collection and lookup of this data. If you have a trace ID in a log file, you can jump di

zipkin.io

 

zipkin

  • Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템
  • 분산환경에서의 시스템 병목 형상 파악
  • Collector, Query Service, Database, UI로 구성
  • Span
    • 하나의 요청에 사용되는 작업의 단위
  • Trace
    • 트리 구조로 이루어진 Span 집합

zipkin 설치

// zipkin 설치
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar

 

의존성 주입 (build.gradle)

dependencies {
	...
	implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
	implementation 'org.springframework.cloud:spring-cloud-starter-zipkin:2.2.3.RELEASE'
}

 

 설정값 변경 (application.yml)

  • sleuth.sampler.probability : 얼마나 zipkin 서버에 전달할지 1.0 (전부 전달)
spring:
  zipkin:
    base-url: http://localhost:9411
    enabled: true
  sleuth:
    sampler:
      probability: 1.0

 

 

사용 예시

  • 서비스 이름, trace id, span id 발급을 확인할 수 있다.
  • 같은 trace 아이디를 가진 것을 확인할 수 있다. 

services-server log

voca-server log

zipkin 서버 로그 확인