분산 추적

분산 추적 (Distributed Tracing)

Istio가 활성화된 애플리케이션에서 추적 스팬(trace spans)을 수집하도록 설정하는 방법과, Istio의 분산 추적에 대한 개요를 알려드려요.

출처: Istio 문서

본문

이 작업은 Istio가 활성화된 애플리케이션에서 추적 스팬을 수집하도록 설정하는 방법을 보여줘요.

이 페이지는 Istio에서 분산 추적에 대한 개요를 제공해요. 애플리케이션을 추적하는 방법에 대한 자세한 가이드는 HTTP 요청에 대한 추적 생성과 추적을 위한 프록시 설정을 참고하세요.

개요

Istio가 활성화된 애플리케이션은 다양한 분산 추적 도구를 사용해서 추적 스팬을 수집하도록 설정할 수 있어요.

  • Zipkin
  • Jaeger
  • Apache SkyWalking
  • OpenTelemetry

이 도구들은 애플리케이션의 성능을 분석할 수 있게 해주는 분산 추적(Distributed Tracing) 제품을 제공해요. "clothing-shopping" 데모 애플리케이션은 마이크로서비스 체인을 통해 분산 워크플로우를 추적하는 방법을 보여줘요. 즉, ingress 게이트웨이부터 bookinfo "productpage" 서비스, "reviews", "details" 하위 서비스까지의 전체 흐름이 체인으로 이어져요.

구체적으로 말하면, Istio 프로젝트의 bookinfo 샘플에서 각색한 Istio 지원 bookinfo 샘플 애플리케이션은 온라인 서점에 대한 이야기를 담고 있어요.

서비스 메시와 마이크로서비스 맥락에서 '분산 추적(Distributed Tracing)'이라는 용어를 자주 듣게 될 거예요. 마이크로서비스는 보통 운영 데이터를 각자 따로 수집하고 관리하지만, 분산 추적을 사용하면 단일 논리 요청이 마이크로서비스 스택을 통과하는 흐름을 관찰할 수 있어요.

애플리케이션에 분산 추적을 추가하는 동기는 다음과 같은 질문에 답할 수 있게 하기 위해서예요:

  • 요청이 얼마나 오래 걸리나요?
  • 사용자는 요청 지연 시간 측면에서 무엇을 경험하나요?
  • 개별 서비스 작업은 어떻게 수행되나요?
  • 요청에 어떤 컴포넌트가 관여하나요?
  • 성능 저하가 발생했을 때 엔지니어에게 어떻게 페이징하나요?

분산 추적이 없으면 애플리케이션 텔레메트리는 단일 서비스에 국한되어서, 성능 저하가 로컬 문제인지 전역 문제인지 판단하기 어려울 수 있어요.

Istio에서의 분산 추적

Zipkin, Jaeger, Apache SkyWalking, OpenTelemetry는 모두 Istio에서 추적 백엔드로 지원돼요. 이 중 어떤 것이든 자유롭게 골라서 요청을 추적할 수 있어요.

이 페이지는 Istio에서 분산 추적에 대한 개요를 제공해요. 자세한 추적 설정 가이드는 다음부터 시작할 수 있어요:

다음 단계

아래 추적 백엔드 중 하나를 사용해서 Istio의 분산 추적 기능을 관찰해 보세요:

더 알아보기 (Learn more)