26장. 분산 추적 소개
분산 추적을 사용하면 분산 시스템의 애플리케이션 간 트랜잭션 진행 상황을 추적할 수 있습니다. 마이크로 서비스 아키텍처에서 추적은 서비스 간 트랜잭션 진행 상황을 추적합니다. 추적 데이터는 애플리케이션 성능을 모니터링하고 대상 시스템 및 최종 사용자 애플리케이션 관련 문제를 조사하는 데 유용합니다.
Apache Kafka용 Streams에서 분산 추적을 사용하면 소스 시스템에서 Kafka로 보낸 다음 Kafka에서 대상 시스템 및 애플리케이션까지 메시지를 엔드 투 엔드로 쉽게 추적할 수 있습니다. 이는 Grafana 대시보드 및 구성 요소 로거의 메트릭 모니터링을 보완합니다.
Apache Kafka의 스트림은 다음 Kafka 구성 요소에 대한 추적을 기본적으로 지원합니다.
- 소스 클러스터에서 대상 클러스터로 메시지를 추적하는 MirrorMaker
- Kafka Connect에서 사용하고 생성하는 메시지를 추적하기 위한 Kafka 연결
- Kafka 및 HTTP 클라이언트 애플리케이션 간 메시지 추적을 위한 Kafka 브리지
Kafka 브로커에서는 추적이 지원되지 않습니다.
26.1. 추적 옵션 링크 복사링크가 클립보드에 복사되었습니다!
분산 추적은 특정 기간 동안 수행되는 개별 작업 단위를 나타내는 범위로 구성됩니다. 추적기를 사용하여 계측하면 애플리케이션에서 시스템을 이동할 때 요청을 따르는 추적을 생성하여 지연 또는 문제를 더 쉽게 식별할 수 있습니다.
Telemetry 프레임워크인 OpenTelemetry는 특정 백엔드 추적 시스템과 독립적인 추적을 위한 API를 제공합니다. Apache Kafka용 Streams에서 Kafka 구성 요소와 추적 시스템 간에 추적을 전송하는 기본 프로토콜은 벤더 중립 프로토콜인 OpenTelemetry 프로토콜(OpenTelemetry Protocol)입니다.
OTLP는 기본값이지만 Apache Kafka의 Streams는 Jaeger와 같은 다른 추적 시스템도 지원합니다. Jaeger는 마이크로 서비스를 모니터링하기 위해 설계된 분산 추적 시스템이며 사용자 인터페이스를 사용하면 추적 데이터를 자세히 쿼리, 필터링 및 분석할 수 있습니다.
간단한 쿼리를 표시하는 Jaeger 사용자 인터페이스