1.5. OpenShift 인스턴스에 Jaeger 설치

3scale API 공급자는 Jaeger와 함께 OpenTracing을 사용하여 API에 대한 호출을 추적하고 문제를 해결할 수 있습니다. 이렇게 하려면 3scale이 실행 중인 OpenShift 인스턴스에 Jaeger를 설치합니다.

주의

Jaeger는 APIcast의 사용을 제외하고 3scale에서 지원하지 않는 타사 구성 요소입니다. 다음 지침은 참조 예제로만 제공되며 프로덕션용으로는 적합하지 않습니다.

절차

  1. 현재 네임스페이스에 Jaeger all-in-one 템플릿을 설치합니다.

    oc process -f https://raw.githubusercontent.com/jaegertracing/jaeger-openshift/master/all-in-one/jaeger-all-in-one-template.yml | oc create -f -
  2. Jaeger 구성 파일 jaeger_config.json 을 생성하고 다음을 추가합니다.

    {
        "service_name": "apicast",
        "disabled": false,
        "sampler": {
          "type": "const",
          "param": 1
        },
        "reporter": {
          "queueSize": 100,
          "bufferFlushInterval": 10,
          "logSpans": false,
          "localAgentHostPort": "jaeger-agent:6831"
        },
        "headers": {
          "jaegerDebugHeader": "debug-id",
          "jaegerBaggageHeader": "baggage",
          "TraceContextHeaderName": "uber-trace-id",
          "traceBaggageHeaderPrefix": "testctx-"
        },
        "baggage_restrictions": {
            "denyBaggageOnInitializationFailure": false,
            "hostPort": "127.0.0.1:5778",
            "refreshInterval": 60
        }
     }
    • 1의 샘플러 상수는 모든 요청을 샘플링하려고 함을 나타냅니다.
    • 보고자 의 위치 및 큐 크기가 필요합니다.
    • 헤더 에서 요청을 추적하려면 TraceContextHeaderName 항목이 필요합니다.
  3. Jaeger 구성 파일에서 ConfigMap을 생성하고 APIcast에 마운트합니다.

    oc create configmap jaeger-config --from-file=jaeger_config.json
    oc set volumes dc/apicast --add -m /tmp/jaeger/ --configmap-name jaeger-config
  4. 방금 추가한 구성으로 OpenTracing 및 Jaeger를 활성화합니다.

    oc set env deploymentConfig/apicast OPENTRACING_TRACER=jaeger OPENTRACING_CONFIG=/tmp/jaeger/jaeger_config.json
  5. Jaeger 인터페이스가 실행 중인 URL을 찾습니다.

    oc get route
    (…) jaeger-query-myproject.127.0.0.1.nip.io
  6. Openshift Health 검사에서 채워지는 데이터를 표시하는 이전 단계에서 Jaeger 인터페이스를 엽니다.
  7. 전체 요청 추적을 볼 수 있도록 OpenTracing 및 Jaeger 지원을 백엔드 API에 추가합니다. 각 백엔드에서 사용되는 프레임워크와 언어에 따라 달라집니다. 참조 예는 Kubernetes에서 애플리케이션 메트릭을 수집하기 위해 Jaeger로 OpenTracing 사용을 참조하십시오.