Notice
Recent Posts
Recent Comments
Link
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 개발 일상 기록

[MSA] MSA 운영 환경을 위한 전용 모니터링 도구 본문

MSA

[MSA] MSA 운영 환경을 위한 전용 모니터링 도구

느린 거북이 2021. 7. 21. 12:11

MSA 운영 환경을 위한 전용 모니터링 도구들 간략 정보

- Zipkin, Turbine -

 

1. 분산 Tracing에서 서버간 Trace 정보의 전달

 

서버간의 Trace 정보의 전달은 사용 Protocol의 헤더를 통해 전달이 필요합니다.

ex) HTTP Header

 

  • In Process에서 Trace 정보의 전달 문제

다양한 Library에 의한 Thread 변경으로 인한 Trace 정보의 전달이 어려움이 있습니다.

- 단순한 Thread Local에 저장하는 방식을 사용하기 어렵습니다.

- Hystrix, RxJava, @Asynx, 등 ...

 

1. Zipkin

 

마이크로서비스아키텍쳐(MSA) 환경에서는 하나의 서비스 호출을 통해 내부적으로 여러개의 서비스가 호출될 수 있습니다. 그렇기 때문에 특정 구간에서 병목이 생길 경우 전통적인 모니터링 방식인 APM(Application Performance Monitoring, 예를 들면 Jennifer) 도구를 이용해서는 추적이 어렵습니다. 그렇기 때문에 별도의 분산 환경 로그 트레이싱 시스템이 필요하게 되었습니다. Zipkin은 분산 환경에서 로그 트레이싱하는 오픈소스로 트위터에서 개발되었으며, 현재 가장 활성화된 오픈소스입니다.(오픈 소스 생태계가 활발하여 플러그인이나 부가적인 도구가 많습니다) Zipkin으로 추적할 수 있는 분산 트랜잭션은 HTTP, gRPC가 있습니다.

  • Spring Cloud Sleuth

MSA환경에서 클라이언트의 호출은 내부적으로 여러 마이크로서비스를 거쳐서 일어나기 때문에 추적이 어렵습니다. 때문에 이를 추적하기 위해서는 연관된 ID가 필요한데, 이런 ID를 자동으로 생성해주는 것이 Spring Cloud Sleuth 입니다. 

 

  • Spring Cloud에서 제공하는 Distributed Tracing 솔루션

- 대부분의 내외부 호출 구간에서 Trace 정보를 생성 및 전달합니다.

- Log에 남기거나 수집 서버(Zipkin)에 전송하여 검색/시각화 해줍니다.

 

  • Spring Cloud Sleuth가 지원되는 Component

- Zuul, Servlet, RestTemplate, Hystrix, Feign, RxJava

 

  • Spring Cloud Sleuth - Logging

Spring Cloud Sleuth 사용 시 Application 로그에 Trace ID(UUID)가 함께 출력합니다.

Trace ID - 하나의 Request에 대해 서버 전체를 결쳐 동일한 UUID

 

  • Zipkin 시각화

Zipkin

* 위의 사진에서 database라는 특이한 노드가 보입니다. Spring Cloud Sleuth로는 DB 호출 구간은 표현이 안됩니다. DB호출 구간을 시각화하기 위해서는 Spring AOP를 사용하여 Sleuth API로 Trace 정보를 직접 생성해주어야 합니다.

 

2. Hystrix 모니터링 with Turbine

 

Turbine은 유레카 서버로부터 클라이언트 목록을 받아와 Hystrix Stream을 집계해서 클러스터링 해주는 모듈로서 넷플릭스사가 개발하였습니다.

 

  • Hystrix 모니터링

Circuit Breaker 지표

 

Success - 성공횟수

Short-Circuited - 차단횟수

Bad Request - 사용자 입력 오류

Timeout - 시간 초과

Rejected - Isolation 초과

Failure - 일반 오류

Error % - 전체 에러 비율

 

Thread Pool 상태

다음 포스팅에서는 Zipkin과 Hystrix Turbine에 대해서 자세히 알아보아야겠다.

 

참고사이트

https://www.youtube.com/watch?v=J-VP0WFEQsY&t=2782s

 

 

 

 

 

 

 

 

 

 

 

 

 

'MSA' 카테고리의 다른 글

[MSA] Hystrix Monitoring With Turbine  (0) 2021.07.22
[MSA] Hystrix, Ribbon, Eureka in Spring Cloud Zuul  (0) 2021.07.20
[MSA] Spring Cloud Netflix  (0) 2021.07.14
[MSA] MSA(Microservices Architecture)  (0) 2021.07.12
Comments