- https://zipkin.io/
- 분산 환경에서의 시스템 병목 현상 파악
- Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템(오픈 소스)
- Collector, Query Service, Databasem WebUi 로 구성
- Span
- 하나의 요청에 사용되는 작업의 단위
- 64bit unique ID
- Trace
- 트리 구조로 이루어진 Span 셋
- 하나의 요청에 대한 같은 Trace ID 발급
Spring Cloud Sleuth
- 스프링 부트 애플리케이션을 Zipkin과 연동
- 요청 값에 따른 TraceID, SpanId 부여
- Trace와 Span Ids를 로그에 추가 가능
- servlet filter
- rest templete
- scheduled actions
- message channels
- feign client
설치
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
사용해보기
user-service
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
spring:
zipkin:
base-url: http://127.0.0.1:9411
enabled: true
sleuth:
sampler:
probability: 1.0