3.3. 분산 추적 데이터 수집 구성 및 배포

Red Hat OpenShift distributed tracing data collection Operator는 Red Hat OpenShift distributed tracing 데이터 수집 리소스를 생성하고 배포할 때 사용할 아키텍처 및 구성 설정을 정의하는 CRD(사용자 정의 리소스 정의) 파일을 사용합니다. 기본 구성을 설치하거나 비즈니스 요구 사항에 맞게 파일을 수정할 수 있습니다.

3.3.1. OpenTelemetry 수집기 구성 옵션

중요

Red Hat OpenShift distributed tracing data collection Operator는 기술 프리뷰 기능 전용입니다. Technology Preview 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

OpenTelemetry 수집기는 Telemetry 데이터에 액세스하는 세 가지 구성 요소로 구성됩니다.

  • 수신자 - 푸시 또는 가져오기 기반일 수 있는 수신자는 데이터를 수집기로 가져오는 방법입니다. 일반적으로 수신자는 지정된 형식의 데이터를 수락하고 이를 내부 형식으로 변환하고 해당 파이프라인에 정의된 프로세서 및 내보내기에 전달합니다. 기본적으로 수신자는 구성되지 않습니다. 하나 이상의 수신자를 구성해야 합니다. 수신자는 하나 이상의 데이터 소스를 지원할 수 있습니다.
  • 프로세서 - (선택 사항) 프로세서는 수신 및 내보내기 사이에 데이터에서 실행됩니다. 기본적으로 프로세서는 활성화되어 있지 않습니다. 모든 데이터 소스에 대해 프로세서를 활성화해야 합니다. 모든 프로세서가 모든 데이터 소스를 지원하지는 않습니다. 데이터 소스에 따라 여러 프로세서를 활성화하는 것이 좋습니다. 또한 프로세서 순서가 중요합니다.
  • 내보내기 - 푸시 또는 가져오기 기반일 수 있는 내보내기는 하나 이상의 백엔드/대상에 데이터를 보내는 방법입니다. 기본적으로 내보내기는 구성되지 않습니다. 하나 이상의 내보내기를 구성해야 합니다. 내보내기는 하나 이상의 데이터 소스를 지원할 수 있습니다. 내보내기에는 기본 설정이 있을 수 있지만 최소한 대상 및 보안 설정을 지정하려면 구성이 필요합니다.

사용자 정의 리소스 YAML 파일에서 구성 요소의 여러 인스턴스를 정의할 수 있습니다. 구성되면 YAML 파일의 spec.config.service 섹션에 정의된 파이프라인을 통해 이러한 구성 요소를 활성화해야 합니다. 가장 좋은 방법은 필요한 구성 요소만 활성화해야 합니다.

OpenTelemetry 수집기 사용자 정의 리소스 파일 샘플

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: cluster-collector
  namespace: tracing-system
spec:
  mode: deployment
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    processors:
    exporters:
      jaeger:
        endpoint: jaeger-production-collector-headless.tracing-system.svc:14250
        tls:
          ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: []
          exporters: [jaeger]

참고

구성 요소가 구성되어 있지만 서비스 섹션에 정의되지 않으면 활성화되지 않습니다.

표 3.17. Operator에서 OpenTelemetry 수집기를 정의하는 데 사용하는 매개변수

매개변수설명기본값
receivers:

수신자는 데이터를 수집기에 가져오는 방법입니다. 기본적으로 수신자는 구성되지 않습니다. 구성이 유효한 것으로 간주되려면 하나 이상의 활성화된 수신자가 있어야 합니다. 파이프라인에 추가될 수신자가 활성화됩니다.

otlp, jaeger

없음

receivers:
  otlp:

oltpjaeger 수신자는 기본 설정이 제공되므로 수신자 이름을 지정하는 것으로 충분합니다.

  
processors:

프로세서는 수신 및 내보내기 사이에 데이터에서 실행됩니다. 기본적으로 프로세서는 활성화되어 있지 않습니다.

 

없음

exporters:

내보내기는 하나 이상의 백엔드/대상에 데이터를 보냅니다. 기본적으로 내보내기는 구성되지 않습니다. 구성이 유효한 것으로 간주되려면 하나 이상의 활성화된 내보내기가 있어야 합니다. 내보내기는 파이프라인에 추가하여 사용할 수 있습니다. 내보내기에는 기본 설정이 있을 수 있지만 최소한 대상 및 보안 설정을 지정하려면 구성이 필요합니다.

logging, jaeger

없음

exporters:
 jaeger:
  endpoint:

보안 연결을 설정하려면 jaeger 내보내기의 끝점이 < name>-collector-headless.<namespace>.svc 여야 합니다.

  
exporters:
 jaeger:
  tls:
   ca_file:

CA 인증서의 경로입니다. 클라이언트의 경우 서버 인증서를 확인합니다. 서버의 경우 클라이언트 인증서를 확인합니다. 비어있는 경우 시스템 루트 CA를 사용합니다.

  
service:
  pipelines:

구성 요소는 services.pipeline 아래의 파이프라인에 추가하여 사용할 수 있습니다.

  
service:
  pipelines:
    traces:
      receivers:

service.pipelines.traces 에 추가하여 추적할 수신자를 활성화합니다.

 

없음

service:
  pipelines:
    traces:
      processors:

service.pipelines.traces 에 추가하여 추적할 프로세서를 활성화합니다.

 

없음

service:
  pipelines:
    traces:
      exporters:

service.pipelines.traces 에 추가하여 추적을 위해 내보내기를 활성화합니다.

 

없음