11.7. 계측기 문제 해결


계측 문제를 해결하려면 다음 문제 중 하나를 찾아보세요.

  • 작업 부하에 대한 계측 주입 문제
  • 계측 라이브러리의 데이터 생성 문제

11.7.1. 작업 부하에 계측기 주입 문제 해결

계측 주입 문제를 해결하려면 다음 작업을 수행할 수 있습니다.

  • Instrumentation 객체가 생성되었는지 확인
  • init-container가 시작되었는지 확인
  • 리소스가 올바른 순서로 배포되었는지 확인
  • 운영자 로그에서 오류 검색
  • 포드 주석을 다시 확인하세요

프로세스

  1. 다음 명령을 실행하여 Instrumentation 개체가 성공적으로 생성되었는지 확인하세요.

    $ oc get instrumentation -n <workload_project> 
    1
    1
    계측이 생성된 네임스페이스입니다.
  2. 다음 명령을 실행하여 워크로드에 계측을 주입하기 위한 전제 조건인 opentelemetry-auto-instrumentation init-container가 성공적으로 시작되었는지 확인하세요.

    $ oc get events -n <workload_project> 
    1
    1
    워크로드에 대한 계측이 주입되는 네임스페이스입니다.

    출력 예

    ... Created container opentelemetry-auto-instrumentation
    ... Started container opentelemetry-auto-instrumentation

  3. 자동 계측이 올바르게 작동하도록 리소스가 올바른 순서로 배포되었는지 확인하세요. 올바른 순서는 애플리케이션보다 먼저 Instrumentation 사용자 정의 리소스(CR)를 배포하는 것입니다. 계측 CR에 대한 자세한 내용은 "계측 구성" 섹션을 참조하세요.

    참고

    포드가 시작되면 OpenTelemetry Operator의 Red Hat 빌드는 자동 계측을 주입하기 위한 지침이 포함된 주석을 확인하기 위해 Instrumentation CR을 확인합니다. 일반적으로 Operator는 자동 계측 및 환경 변수를 애플리케이션 컨테이너에 주입하는 init 컨테이너를 애플리케이션의 Pod에 추가합니다. 애플리케이션이 배포될 때 운영자가 계측 CR을 사용할 수 없는 경우 운영자는 자동 계측을 주입할 수 없습니다.

    배포 순서를 수정하려면 다음 단계가 필요합니다.

    1. 계측 설정을 업데이트합니다.
    2. 계측 객체를 삭제합니다.
    3. 애플리케이션을 다시 배포합니다.
  4. 다음 명령을 실행하여 Operator 로그에서 계측 오류를 검사하세요.

    $ oc logs -l app.kubernetes.io/name=opentelemetry-operator --container manager -n openshift-opentelemetry-operator --follow
  5. 특정 프로그래밍 언어의 계측에 대한 포드 주석 문제를 해결합니다. "계측 구성"에서 필수 주석 필드와 값을 확인하세요.

    1. 계측하고 있는 애플리케이션 포드에 올바른 주석이 표시되어 있고 적절한 자동 계측 설정이 적용되었는지 확인하세요.

      instrumentation.opentelemetry.io/inject-python="true"

      계측된 Python 애플리케이션에 대한 Pod 주석을 가져오는 예제 명령

      $ oc get pods -n <workload_project> -o jsonpath='{range .items[?(@.metadata.annotations["instrumentation.opentelemetry.io/inject-python"]=="true")]}{.metadata.name}{"\n"}{end}'

    2. 계측 대상 프로그래밍 언어에 맞게 계측 객체에 적용된 주석이 올바른지 확인하세요.
    3. 동일한 네임스페이스에 여러 계측이 있는 경우 주석에서 Instrumentation 개체의 이름을 지정합니다.

      instrumentation.opentelemetry.io/inject-nodejs: "<instrumentation_object>"

    4. Instrumentation 객체가 다른 네임스페이스에 있는 경우 주석에서 네임스페이스를 지정합니다.

      instrumentation.opentelemetry.io/inject-nodejs: "<other_namespace>/<instrumentation_object>"

    5. OpenTelemetryCollector 사용자 지정 리소스가 spec.template.metadata.annotations 아래에 자동 계측 주석을 지정하는지 확인합니다. 자동 계측 주석이 spec.metadata.annotations 에 있는 경우 spec.template.metadata.annotations 로 이동합니다.

11.7.2. 계측 라이브러리에 의한 원격 측정 데이터 생성 문제 해결

계측 라이브러리에서 원격 측정 데이터 생성과 관련된 문제를 해결하려면 엔드포인트를 확인하고, 애플리케이션 로그에서 오류를 찾고, 수집기가 원격 측정 데이터를 수신하고 있는지 확인하세요.

프로세스

  1. 계측기가 올바른 엔드포인트로 데이터를 전송하는지 확인하세요.

    $ oc get instrumentation <instrumentation_name> -n <workload_project> -o jsonpath='{.spec.endpoint}'

    Instrumentation 객체의 기본 엔드포인트 http://localhost:4317은 애플리케이션 포드에 사이드카로 배포된 Collector 인스턴스에만 적용할 수 있습니다. 잘못된 엔드포인트를 사용하는 경우 Instrumentation 객체를 편집하고 애플리케이션을 다시 배포하여 수정하세요.

  2. 계측이 제대로 작동하지 않는다는 것을 나타낼 수 있는 오류 메시지가 있는지 애플리케이션 로그를 검사하세요.

    $ oc logs <application_pod> -n <workload_project>
  3. 애플리케이션 로그에 계측 장비가 제대로 작동하지 않을 수 있다는 오류 메시지가 포함되어 있는 경우 OpenTelemetry SDK와 라이브러리를 로컬에 설치합니다. 그런 다음 OpenShift Container Platform 없이 로컬에서 애플리케이션을 실행하고 계측 라이브러리와 애플리케이션 간의 문제를 해결하세요.
  4. 디버그 내보내기를 사용하여 원격 측정 데이터가 대상 OpenTelemetry Collector 인스턴스에 도달하는지 확인합니다. 자세한 내용은 "디버그 내보내기"를 참조하세요.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동