분산 추적 오류 문제 해결

이 문서에서는 Secure Web Proxy와 함께 Cloud Trace 및 원격 분석 정책을 사용할 때 분산 추적 문제를 진단하고 해결하는 방법을 설명합니다.

Trace에 트레이스가 표시되지 않음

보안 웹 프록시에서 생성된 추적 스팬이 Trace 탐색기에 표시되지 않으면 다음 항목을 확인하세요.

  1. Cloud Trace API가 사용 설정되어 있는지 확인: 보안 웹 프록시 게이트웨이를 호스팅하는Google Cloud 프로젝트에서 Trace API (cloudtrace.googleapis.com)가 사용 설정되어 있는지 확인합니다.

    <pre class="devsite-click-to-copy">
    gcloud services enable cloudtrace.googleapis.com
    </pre>
    
  2. 원격 분석 정책이 존재하고 활성 상태인지 확인: gcloud beta network-services telemetry-policies describe 명령어를 사용하여 원격 분석 정책이 올바른 리전에 있고 적절한 Secure Web Proxy 게이트웨이를 참조하는지 확인합니다.

    gcloud beta network-services telemetry-policies describe POLICY_NAME \
        --location=REGION
    

    다음을 바꿉니다.

    • POLICY_NAME: 원격 분석 정책의 이름입니다(예: my-swp-tracing-policy).
    • REGION: 원격 분석 정책이 배포된 리전(예: us-central1)
  3. 샘플링 비율 확인: 정책의 samplingRate이 낮은 경우 (예: 0.01 1% 또는 0.001 0.1%) 개별 수동 테스트 요청이 샘플링되지 않을 수 있습니다. 추적이 작동하는지 확인하려면 정책을 일시적으로 업데이트하여 100% 샘플링 (samplingRate: 1.00)을 사용한 다음 프로덕션 비율을 복원하세요.

  4. 타겟 게이트웨이 리소스 URI 검증: 원격 분석 정책의 telemetryTarget.resources 필드에 Secure Web Proxy 게이트웨이의 정확한 정규화된 리소스 URL 또는 닉네임이 지정되어 있는지 확인합니다.

    //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME
    

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID
    • REGION: Secure Web Proxy 게이트웨이가 배포된 리전(예: us-central1)
    • GATEWAY_NAME: Secure Web Proxy 게이트웨이 인스턴스의 이름

    프로젝트 ID, 리전 또는 게이트웨이 이름이 일치하지 않으면 프록시가 정책 구성을 수신할 수 없습니다.

  5. ID 및 액세스 관리 (IAM) 권한 확인:

    • Google Cloud 콘솔에서 스팬을 보려면 사용자 계정 또는 서비스 계정에 Cloud Trace 사용자 역할(roles/cloudtrace.user) 역할을 부여했는지 확인합니다.
    • 다음 서비스 계정에 Cloud Trace 에이전트 역할(roles/cloudtrace.agent)을 부여했는지 확인하세요.
      • service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
      • service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com
      • 클라이언트 애플리케이션이 스팬을 생성하거나 전파하는 경우 클라이언트 가상 머신 (VM) 서비스 계정

누락된 하위 스팬 또는 손상된 트레이스 그래프

Secure Web Proxy 프록시 스팬이 애플리케이션 요청의 하위 스팬이 아닌 독립적이거나 연결이 끊긴 루트 trace로 표시되는 경우 다음을 실행하세요.

  1. 상위 기반 샘플링 사용 설정: 원격 분석 정책 YAML 파일에서 parentBasedSampling.enabledtrue로 설정되어 있는지 확인합니다.

    tracingConfiguration:
      samplingRate: 0.01
      parentBasedSampling:
        enabled: true
    

    상위 요소 기반 샘플링이 사용 중지된 경우 Secure Web Proxy는 로컬 samplingRate와 일치하지 않으면 업스트림에서 샘플링된 trace를 삭제할 수 있습니다.

  2. OpenTelemetry 계측 확인: 애플리케이션이 분산 추적 컨텍스트 전파가 사용 설정된 OpenTelemetry SDK를 사용하는지 확인합니다. 자세한 내용은 OpenTelemetry TraceContext 전파기 문서를 참고하세요.

예상치 않게 높은 트레이스 수집량

Trace에서 예상보다 높은 트레이스 수집량 또는 비용이 관찰되면 다음을 수행하세요.

  1. 기준 샘플링 비율 줄이기: 트래픽이 많은 프로덕션 환경에서는 samplingRate0.01 (1%) 또는 0.001 (0.1%)과 같은 작은 비율로 설정합니다.
  2. 상위 기반 샘플링 사용: 게이트웨이 기준 samplingRate을 낮게 유지하고 parentBasedSampling를 사용 설정합니다. 이 조합을 사용하면 프록시가 업스트림 애플리케이션에서 특별히 선택한 요청만 샘플링할 수 있습니다.
  3. 임시 디버그 정책 삭제: 문제 해결 중에 100% 샘플링(samplingRate: 1.00)을 적용한 경우 디버깅 프로세스가 완료된 후 정책을 삭제하거나 이전 구성으로 되돌립니다.

다음 단계