Cloud & DevOps/Distributed System & Kubernetes

[Tracing] Jaeger

데이터 세상 2022. 6. 20. 16:49

Jaeger

https://www.jaegertracing.io/

 

Jaeger: open source, end-to-end distributed tracing

Monitor and troubleshoot transactions in complex distributed systems

www.jaegertracing.io

분산 서비스 간 트랜잭션을 추적하는 오픈소스 소프트웨어로 복잡한 마이크로서비스 환경을 모니터링하고 문제를 해결하는 데 사용된다.

차량 공유 서비스 기업인 Uber Technologies에서 2015년에 만든 분산형 추적시스템 오픈소스 프로젝트로 개발되었다. 2017년 CNCF(Cloud Native Computing Foundation) 프로젝트로 채택되었으며 2019년에는 정식 프로젝트로 승인되었다.

 

분산 추적

분산 추적은 마이크로서비스 간 복잡한 상호 작용에서 이벤트 전체를 파악하는 방식이다.

일반적으로 서비스 메쉬의 일부로 실행되는 분산 추적은 마이크로서비스를 관리하고 관찰할 수 있는 방법이다.

트랙잭션에 대한 체계적인 정보는 디버깅이나 최적화에 유용하게 활용될 수 있다.

Jaeger는 분산 트랜잭션을 모니터링하고, 성능과 대기 시간을 최적화하고, 문제 해결을 위한 근본 원인 분석(Root Cause Analysis, RCA)을 수행할 툴을 갖추고 있다.

 

Jaeger 용어

trace (추적)

실행 요소를 추적으로 표시한다.

추적은 시스템 전반에서 데이터/실행 경로를 나타낸다.

span (스팬)

추적은 1개 이상의 스팬으로 이루어진다.

스팬이란 Jaeger의 논리적 작업 단위이다. 각 스팬에는 운영 작업의 이름, 시작 시간, 기간이 포함되어 있다,

스팬은 중첩되거나 순서대로 정리되어 있을 수 있다.

 

Jaeger 구성 요소

Jaeger Client

분산 추적을 위한 OpenTracing API의 언어별 구현이 포함되어 있다. 수동으로 사용하거나 다양한 오픈소스 프레임워크와 함께 사용할 수 있다.

Jaeger Agent

사용자 데이터그램 프로토콜(User Datagram Protocol)을 통해 전송된 스팬을 수신하는 네트워크 데몬으로, 계측된 애플리케이션과 동일한 호스트에 배치된다. 일반적으로 쿠버네티스와 같은 컨테이너 환경의 사이드카를 통해 구현된다.

Jaeger Collector

프로세싱을 위해 스팬을 수신하여 대기열에 배치한다.

Collector에는 영구 스토리지 백엔드가 필요하기 때문에 Jaeger에는 스팬 스토리지용 플러그 가능 메커니즘이 있다.

Query

스토리지에서 추적을 검색하는 서비스이다.

Jaeger Console

분산된 추적 데이터를 시각화하는 사용자 인터페이스이다.


References

반응형

'Cloud & DevOps > Distributed System & Kubernetes' 카테고리의 다른 글

[Serverless] Knative  (0) 2022.06.20
Kafka  (0) 2022.06.20
[Service Mesh] Istio  (0) 2022.06.20
[MSA] Service Mesh  (0) 2022.06.20
Red Hat OpenShift Terms  (0) 2022.06.13