2.3. Red Hat OpenShift 분산 추적 플랫폼 아키텍처
Red Hat OpenShift Distributed Tracing Platform은 추적 데이터를 수집, 저장, 표시하기 위해 함께 작동하는 여러 구성 요소로 이루어져 있습니다.
Red Hat OpenShift 분산 추적 플랫폼 - 이 구성 요소는 오픈 소스 Grafana Tempo 프로젝트를 기반으로 합니다.
- 게이트웨이는 인증, 권한 부여 및 요청을 배포 또는 쿼리 프런트 엔드 서비스로 처리합니다.
-
배포자 - 배포자는 Jaeger, OpenTelemetry 및 Zipkin을 비롯한 여러 형식으로 기간을 허용합니다. 이 경로는
traceID
를 해시하고 분산 일관된 해시 링을 사용하여 Ingesters로 구성됩니다. - Ingester - Ingester는 추적을 블록으로 배치하고, bloom 필터와 인덱스를 생성한 다음 모두 백엔드로 플러시합니다.
- 쿼리 프런트 엔드 - 쿼리 프런트 엔드는 들어오는 쿼리에 대한 검색 공간을 분할합니다. 그런 다음 검색 쿼리가 Queriers로 전송됩니다. 쿼리 프런트 엔드 배포는 Tempo 쿼리 사이드카를 통해 Jaeger UI를 노출합니다.
- Querier - Querier는 Ingesters 또는 백엔드 스토리지에서 요청된 추적 ID를 찾을 책임이 있습니다. 매개변수에 따라 Ingesters를 쿼리하고 백엔드에서 오브젝트 스토리지의 검색 블록으로 Ingesters를 가져올 수 있습니다.
- Cryo stator - 백엔드 스토리지로 또는 백엔드 스토리지에서 차단하여 총 블록 수를 줄입니다.
OpenTelemetry의 Red Hat 빌드 - 이 구성 요소는 오픈 소스 OpenTelemetry 프로젝트를 기반으로 합니다.
- OpenTelemetry Collector - OpenTelemetry 수집기는 원격 분석 데이터를 수신, 처리 및 내보내는 벤더와 무관한 방법입니다. OpenTelemetry 수집기는 오픈 소스 관찰 기능 데이터 형식(예: Jaeger 및 Prometheus)을 지원하여 하나 이상의 오픈 소스 또는 상용 백엔드로 전송합니다. 수집기는 원격 분석 데이터를 내보내는 기본 위치 조정 라이브러리입니다.
Red Hat OpenShift Distributed Tracing Platform(Jaeger) - 이 구성 요소는 오픈 소스 Jaeger 프로젝트를 기반으로 합니다.
중요Red Hat OpenShift Distributed Tracing Platform(Jaeger)은 더 이상 지원되지 않는 기능입니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Container Platform에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.
Red Hat OpenShift Distributed Tracing Platform Operator(Jaeger)는 향후 릴리스에서
redhat-operators
카탈로그에서 제거될 예정입니다. 자세한 내용은 Red Hat Knowledgebase 솔루션인 Jaeger Deprecation and Removal in OpenShift를 참조하세요.사용자는 분산 추적 수집 및 저장을 위해 Tempo Operator와 OpenTelemetry의 Red Hat 빌드로 마이그레이션해야 합니다.
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
- 클라이언트 (Jaeger 클라이언트, Tracer, Reporter, 계측화된 애플리케이션, 클라이언트 라이브러리)- Distributed Tracing Platform(Jaeger) 클라이언트는 OpenTracing API의 언어별 구현입니다. 이러한 프레임워크는 Camel(Fuse), Spring Boot(RHOAR), MicroProfile(RHOAR/Thorntail), Wildfly(EAP) 등과 같이 이미 OpenTracing과 통합된 다양한 기존 오픈 소스 프레임워크를 사용하거나 수동으로 분산 추적을 위한 애플리케이션을 계측하는 데 사용될 수 있습니다.
- 에이전트 (Jaeger 에이전트, 서버 큐, 프로세서 워커) - 분산 추적 플랫폼(Jaeger) 에이전트는 사용자 데이터그램 프로토콜(UDP)을 통해 전송된 스팬을 수신하고 이를 일괄 처리하여 수집기로 전송하는 네트워크 데몬입니다. 에이전트는 조정된 애플리케이션과 동일한 호스트에 배치되어야 합니다. 일반적으로 Kubernetes와 같은 컨테이너 환경에서 사이드카를 보유하여 수행됩니다.
- Jaeger 수집기 (Collector, Queue, Workers) - Jaeger 에이전트와 유사하게 Jaeger 수집기는 기간을 수신하여 처리를 위해 내부 큐에 배치합니다. 이를 통해 Jaeger 수집기는 기간이 스토리지로 이동할 때까지 기다리지 않고 클라이언트/에이전트로 즉시 돌아갈 수 있습니다.
- 스토리지(데이터 저장소) - 수집기에는 영구 스토리지 백엔드가 필요합니다. Red Hat OpenShift Distributed Tracing Platform(Jaeger)에는 SPAN 스토리지를 위한 플러그형 메커니즘이 있습니다. Red Hat OpenShift Distributed Tracing Platform(Jaeger)은 Elasticsearch 스토리지를 지원합니다.
- 쿼리(쿼리 서비스) - 쿼리는 스토리지에서 추적을 검색하는 서비스입니다.
- Ingester (Ingester 서비스) - Red Hat OpenShift Distributed Tracing Platform은 Apache Kafka를 Collector와 실제 Elasticsearch 백업 스토리지 사이의 버퍼로 사용할 수 있습니다. Ingester는 Kafka에서 데이터를 읽고 Elasticsearch 스토리지 백엔드에 쓰는 서비스입니다.
- Jaeger 콘솔 – Red Hat OpenShift Distributed Tracing Platform(Jaeger) 사용자 인터페이스를 사용하면 분산 추적 데이터를 시각화할 수 있습니다. 검색 페이지에서 추적을 찾고 개별 추적을 구성하는 기간의 세부 사항을 확인할 수 있습니다.