[인프라]Jaeger 란?

참고


개요

  • 분산 추적을 보다 쉽게 도와주는 서비스인 Jaeger 에 대해서 알아 봅니다.

분산 추적이란?

  • 분산 추적은 마이크로 서비스 간 복잡한 상호 작용에서 이벤트 전체를 파악하는 방식입니다.
  • 현대적인 클라우드 네이티브 소프트웨어 개발은 각기 다른 핵심 기능을 제공하는 개별 서비스인 마이크로서비으세 의존합니다.
  • 사용자가 애플리케이션에서 요청을 보내면 여러 개별 서비스가 이에 응답하여 결과를 생성합니다.
  • 애플리케이션에서의 단 한번의 호출로 상호 작용하는 수샙 개의 서로 다른 서비스가 실행 될 수도 있습니다.
  • 어떤 문제가 발생하거나 요청의 실행 속도가 느릴 경우 개발자와 엔지니어가 문제를 파악하기 위해서는 모든 연결을 추적할 수 있는 방식이 필요합니다.
  • Jaeger는 분산 추적을 사용해 다양한 마이크로서비스의 요청 경로를 추적하기 때문에 모호하게 추측하는 것이 아니라 실제 요청 흐름을 시각적으로 확인할 수 있습니다.

Jaeger 란?

  • Jaeger 는 분산 서비스간 트랜잭션을 추적하는 오픈소스 소프트웨어로 복잡한 마이크로 서비스 환경을 모니터링 하는데 사용됩니다.
  • 클라우드 네이티브 소프트웨어에서는 사용자가 애플리케이션에 요청을 보내면 요청에 맞는 개별의 마이크로서비스가 이에 응답하여 결과를 생성합니다.
  • 따라서 단 한번의 호출로 이와 관련된 여러개의 서로 다른 마이크로 서비스가 실행될 수 있기 때문에, 에러나 속도 지연 등의 문제가 발생할 경우 문제를 파악하기 위해서는 모든 연결을 추적할 수 있어야 하며, 이때 사용할 수 있는 오픈소스 소프트웨어가 Jaeger 입니다.

Jaeger 용어 및 구성 요소

Jaeger 용어

  • Trace : 시스템을 통하는 데이터/실행 결고, 1개 이상의 Span 으로 이러여져 있습니다. 클라이언트가 특정 기능 요청 후 응답을 리턴 받을 때 까지는 Trace 라고 합니다.
  • Sapn : Jaeger 의 논리적인 작업단위. 각 Span 에는 작업명, 시작 시간, 기간 등의 정보가 포함되어 있습니다.

Jaeger 구성 요소

  • Jaeger Client : 분산 추적을 위한 OpenTracing API 의 언어별 구현이 포함되어 있습니다. 수동으로 사용하거나 다양한 오픈소스 프레임워크와 함께 사용할 수 있습니다.
  • Jaeger Agent : 사용자 데이터그램 프로토콜을 통해 전송된 스팬을 수신하는 네트워크 데몬으로, 계측된 애플리케이션과 동일한 호스트에 배치됩니다. 일반적으로 쿠버네티스와 같은 컨테이너 환셩의 사이드카를 통해 구현됩니다.
  • Jaeger Collector : 프로세싱을 위해 스팬을 수신하여 대기열에 배치합니다. Collector 에는 영구 스토리지 백엔드가 필요하기 때문에 Jaeger 에는 스팬 스토리지용 플러그 가능 메커니즘이 있습니다.
  • Query : 스토리지에서 추적을 검색하는 서비스입니다.
  • Jaeger Console : 분산된 추적 데이터를 시각화하는 사용자 인터페이스입니다.

728x90

'인프라' 카테고리의 다른 글

[인프라] Loki 란?  (0) 2022.08.19
[Infra] OpenTelemetry 및 Prometheus 연동하기  (0) 2022.08.19
[인프라] Jaeger, OpenTelemetry, Grafana 연동  (0) 2022.07.31
[인프라] Zipkin 이란?  (0) 2022.07.29

이 글을 공유하기

댓글

Designed by JB FACTORY