Cloud Trace 계측

이 문서에서는 Cloud Trace용 애플리케이션 계측 방법을 간략하게 설명합니다. Cloud Trace 설정에 대한 자세한 안내는 언어별 설정 페이지를 참조하세요.

Cloud Trace에서는 애플리케이션의 분산 추적 데이터가 제공됩니다. 애플리케이션을 계측한 다음 단일 요청의 지연 시간 데이터를 검사하고 Cloud Trace 콘솔에서 전체 애플리케이션의 총 지연 시간을 볼 수 있습니다.

애플리케이션을 계측해야 하는 경우

trace 데이터가 자동으로 캡처되지 않으면 애플리케이션을 계측하여 이 데이터를 수집해야 합니다.

애플리케이션별 정보를 수집하도록 애플리케이션을 계측할 수 있습니다. 여러 오픈소스 계측 프레임워크를 사용하면 애플리케이션에서 측정항목, 로그, trace를 수집하고 Google Cloud를 포함한 모든 공급업체에 해당 데이터를 전송할 수 있습니다. 애플리케이션을 계측하려면 공급업체 및 제품별 API 또는 클라이언트 라이브러리 대신 OpenTelemetry와 같은 오픈소스인 공급업체 중립적인 계측 프레임워크를 사용하는 것이 좋습니다.

공급업체 중립적 계측 프레임워크를 사용하여 애플리케이션을 계측하는 방법은 계측 및 관측 가능성을 참조하세요.

애플리케이션 계측 방법

애플리케이션이 로그, 측정항목, 추적을 수집하도록 하기 위한 계측에 대한 권장사항은 계측 방법 선택을 참조하세요.

추적 데이터를 수집하도록 애플리케이션을 계측하려면 다음 중 하나를 수행하면 됩니다.

  • 다음 프로그래밍 언어로 OpenTelemetry 및 관련된 Cloud Trace 내보내기 도구를 사용할 수 있습니다.

    OpenTelemetry SDK
    C++ SDK C++ 예시
    Go SDK Go 예시
    Java SDK 자바 예시
    Node.js SDK Node.js 예시
    Python SDK Python 예시
    Ruby SDK OpenTelemetry 문서를 참조하세요.
  • Compute Engine에서 실행되는 애플리케이션을 작성하는 경우 운영 에이전트 및 OpenTelemetry Protocol(OTLP) 수신기를 사용하여 애플리케이션에서 추적과 측정항목을 수집할 수 있습니다. 운영 에이전트는 로그를 수집할 수도 있지만 OTLP를 사용할 수는 없습니다. 자세한 내용은 운영 에이전트 및 OTLP 사용운영 에이전트 개요를 참조하세요.

  • 클라이언트 라이브러리를 사용하거나 Cloud Trace API를 직접 호출하여 추적 데이터를 Cloud Trace로 보낼 수 있습니다. 그러나 라이브러리에서 해당 언어를 지원하는 경우 OpenTelemetry를 사용하는 것이 좋습니다.

  • Zipkin 클라이언트에서 추적을 수신하고 분석을 위해 이 추적을 Cloud Trace로 전달하도록 Zipkin 서버를 구성할 수 있습니다. 이 방법에 대한 자세한 내용은 Zipkin로 Cloud Trace 사용을 참조하세요.

  • 수집하는 추적 데이터를 Cloud Trace로 전달하도록 Spring Boot 애플리케이션을 구성할 수 있습니다. 이 절차에 대한 자세한 내용은 Google Cloud용 Spring Cloud: Cloud Trace를 참조하세요.

스팬을 만들어야 하는 경우

Cloud Trace 클라이언트 라이브러리는 일반적으로 trace ID와 trace 샘플링 여부 등 현재 스팬에 대한 정보가 있는 전역 trace 컨텍스트를 유지합니다. 이러한 라이브러리는 일반적으로 RPC 경계에 스팬을 만듭니다. 하지만 기본 생성 알고리즘이 요구사항을 충족하지 않으면 스팬을 만들어야 할 수 있습니다.

현재 활성 스팬은 전역 trace 컨텍스트에서 액세스할 수 있으며, 경우에 따라 추적자 객체로 래핑됩니다. 커스텀 주석과 태그를 기존 스팬에 사용하여 애플리케이션과 관련된 정보를 추가하거나, 자체 주석과 태그로 새 하위 스팬을 만들어 세밀하게 세분화된 애플리케이션의 동작을 추적할 수 있습니다. 컨텍스트는 전역적이므로 컨텍스트를 업데이트하는 다중 스레드 애플리케이션은 적절한 격리를 사용해야 합니다.

사용자 인증 정보를 제공해야 하는 경우

일반적으로, Google Cloud에서 실행하는 경우 애플리케이션에 사용자 인증 정보를 제공하거나 애플리케이션에서 Google Cloud 프로젝트 ID를 지정할 필요가 없습니다. 일부 언어의 경우 Google Cloud에서 실행하여도 Google Cloud 프로젝트 ID를 지정해야 합니다. 또한 Google Kubernetes Engine에 Autopilot 모드를 사용하거나 워크로드 아이덴티티를 사용 설정하는 경우 워크로드 아이덴티티를 사용하도록 애플리케이션을 구성해야 합니다.

Google Cloud 외부에서 실행하는 경우 애플리케이션에 사용자 인증 정보를 제공해야 합니다. 또한 애플리케이션에서 Google Cloud 프로젝트 ID를 지정해야 합니다.

자세한 내용은 언어별 설정 페이지를 참조하세요.

요청을 강제로 추적하는 방법

애플리케이션이 항상 모든 스팬을 샘플링하지 않는 한, 엔드 투 엔드 요청의 각 구성요소가 자체적으로 샘플링을 결정하기 때문에 요청이 엔드-투-엔드 trace되도록 강제하는 것은 일반적으로 가능하지 않습니다. 그러나 이 플래그를 true로 설정하여 sampled 플래그를 trace 헤더에 추가하면 결정에 영향을 줄 수 있습니다. 이 설정은 요청을 샘플링하기 위한 하위 구성요소에 대한 힌트입니다. trace 헤더에 대한 자세한 내용은 컨텍스트 전파 프로토콜을 참조하세요.

코드를 소유한 다운스트림 구성요소의 경우 계측 로직이 sampled 플래그를 준수하는지 여부를 결정해야 합니다. 예를 들어 계측에 OpenTelemetry를 사용할 때 ParentBased 샘플러를 사용하여 상위 샘플링된 플래그가 반영되도록 할 수 있습니다.

Cloud Trace에 추적 정보를 기록하는 Google Cloud 서비스는 일반적으로 상위 샘플링 플래그를 힌트로 허용합니다. 그러나 대부분의 서비스는 샘플링 비율도 제한합니다. 각 Google Cloud 서비스는 trace 지원 여부, 상위 샘플링 플래그의 활용 방법, 샘플링 비율 제한을 결정합니다.

Cloud Trace API 사용 설정

Cloud Trace를 사용하려면 Google Cloud 프로젝트에 Cloud Trace API가 사용 설정되어 있어야 합니다. 이 설정을 사용하면 Google Cloud 프로젝트가 인증된 소스에서 추적 데이터를 수신할 수 있습니다. 기본적으로 Google Cloud 프로젝트에는 Cloud Trace API가 사용 설정되어 있으므로 별다른 조치를 취할 필요가 없습니다. 그러나 Google Cloud 프로젝트의 액세스 범위를 수정한 경우 Cloud Trace API를 사용 설정해야 할 수 있습니다.

Cloud Trace API를 사용 설정하려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 API 및 서비스를 선택하고 API 및 서비스 사용 설정을 클릭한 다음 Cloud Trace API를 사용 설정합니다.

    Cloud Trace API 설정으로 이동

  2. API 사용 설정됨이 표시되어 있으면 API가 이미 사용 설정된 것입니다. 그렇지 않으면 사용 설정 버튼을 클릭합니다.

다음 단계

GitHub 및 기타 오픈소스 저장소에 대한 자세한 구성 정보, 샘플, 링크를 보려면 언어별 설정 페이지로 이동하세요.