8.3. Jaeger를 사용하여 분산 추적 활성화

Red Hat OpenShift distributed tracing의 모든 구성 요소를 설치하지 않으려면 OpenShift Serverless에서 OpenShift Container Platform에서 분산 추적을 사용할 수 있습니다. 이렇게 하려면 Jaeger를 독립형 통합으로 설치 및 구성해야 합니다.

사전 요구 사항

  • 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
  • OpenShift Serverless Operator, Knative Serving 및 Knative Eventing을 설치했습니다.
  • Red Hat OpenShift distributed tracing Platform Operator를 설치했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.

절차

  1. 다음을 포함하는 Jaeger 사용자 정의 리소스 (CR) 파일을 생성하고 적용합니다.

    Jaeger CR

    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: jaeger
      namespace: default

  2. KnativeServing CR을 편집하고 추적에 필요한 YAML 구성을 추가하여 Knative Serving에 대한 추적을 활성화합니다.

    Serving의 YAML 추적 예

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      config:
        tracing:
          sample-rate: "0.1" 1
          backend: zipkin 2
          zipkin-endpoint: "http://jaeger-collector.default.svc.cluster.local:9411/api/v2/spans" 3
          debug: "false" 4

    1
    sample-rate는 샘플링 가능성을 정의합니다. sample-rate 사용: "0.1" 는 10개의 추적 중 1개가 샘플링됨을 의미합니다.
    2
    backendzipkin으로 설정해야 합니다.
    3
    zipkin-endpointjaeger-collector 서비스 끝점을 가리켜야 합니다. 이 끝점을 가져오려면 Jaeger CR이 적용되는 네임스페이스를 대체합니다.
    4
    디버깅을 false로 설정해야 합니다. debug: "true"를 설정하여 디버그 모드를 활성화하면 모든 범위가 서버에 전송되어 샘플링 단계를 건너뜁니다.
  3. KnativeEventing CR을 편집하여 Knative Eventing에 대한 추적을 활성화합니다.

    Eventing의 YAML 추적 예

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeEventing
    metadata:
      name: knative-eventing
      namespace: knative-eventing
    spec:
      config:
        tracing:
          sample-rate: "0.1" 1
          backend: zipkin 2
          zipkin-endpoint: "http://jaeger-collector.default.svc.cluster.local:9411/api/v2/spans" 3
          debug: "false" 4

    1
    sample-rate는 샘플링 가능성을 정의합니다. sample-rate 사용: "0.1" 는 10개의 추적 중 1개가 샘플링됨을 의미합니다.
    2
    backendzipkin 으로 설정합니다.
    3
    jaeger-collector 서비스 끝점을 zipkin-endpoint 를 가리킵니다. 이 끝점을 가져오려면 Jaeger CR이 적용되는 네임스페이스를 대체합니다.
    4
    디버깅을 false로 설정해야 합니다. debug: "true"를 설정하여 디버그 모드를 활성화하면 모든 범위가 서버에 전송되어 샘플링 단계를 건너뜁니다.

검증

jaeger 경로를 사용하여 Jaeger 웹 콘솔에 액세스하여 추적 데이터를 볼 수 있습니다.

  1. 다음 명령을 입력하여 jaeger 경로의 호스트 이름을 가져옵니다.

    $ oc get route jaeger -n default

    출력 예

    NAME     HOST/PORT                         PATH   SERVICES       PORT    TERMINATION   WILDCARD
    jaeger   jaeger-default.apps.example.com          jaeger-query   <all>   reencrypt     None

  2. 콘솔을 보려면 브라우저에서 끝점 주소를 엽니다.