Python용 Cloud Trace 설정

OpenCensus를 사용하여 Python 애플리케이션에 Cloud Trace를 사용 설정할 수 있습니다. OpenCensus는 여러 백엔드를 통해 작동하는 trace 및 측정항목 데이터를 수집하기 위한 계측 라이브러리 집합입니다. Python용 OpenCensus에 대한 최신 세부정보, 추가 문서, 예시를 보려면 census-instrumentation/opencensus-python으로 이동합니다.

설치 및 구성

pip를 사용해서 OpenCensus 패키지를 설치합니다.

pip install opencensus
pip install opencensus-ext-stackdriver

Stackdriver 내보내기 도구 및 OpenCensus tracer 패키지를 가져오도록 애플리케이션을 업데이트합니다. 또한 애플리케이션은 StackdriverExporterTracer 객체를 인스턴스화해야 합니다.

from opencensus.ext.stackdriver import trace_exporter as stackdriver_exporter
import opencensus.trace.tracer

def initialize_tracer(project_id):
    exporter = stackdriver_exporter.StackdriverExporter(
        project_id=project_id
    )
    tracer = opencensus.trace.tracer.Tracer(
        exporter=exporter,
        sampler=opencensus.trace.tracer.samplers.AlwaysOnSampler()
    )

    return tracer

내보내기에 대한 자세한 내용은 OpenCensus 추적을 참조하세요.

Google Cloud 인프라에서 실행하는 경우 project_id를 Google Cloud 프로젝트 ID로 설정할 필요가 없습니다. 이 필드를 설정하지 않으면 Python용 클라이언트 라이브러리가 Google Cloud 메타데이터 서버에서 이 데이터를 자동으로 수집합니다.

Google Cloud 인프라에서 실행하지 않는 경우 애플리케이션에 Google Cloud 프로젝트 ID를 제공해야 합니다.

인프라에 관계없이 Python의 경우 Google Cloud 프로젝트 ID를 명시적으로 설정하지 않으면 OpenCensus에 의해 호출된 google-cloud Python 라이브러리가 환경 변수 GOOGLE_CLOUD_PROJECT의 설정 여부를 자동으로 확인하며, 설정된 경우 GOOGLE_CLOUD_PROJECT 값을 Google Cloud 프로젝트 ID로 사용합니다. 클라이언트 라이브러리 사용 시 인증에 대한 자세한 내용은 인증을 참조하세요. 일반적인 정보는 인증 시작하기를 참조하세요.

환경 변수를 설정하려면 다음을 수행하세요.

Linux 또는 macOS

export GOOGLE_CLOUD_PROJECT=your-project-id

Windows

set GOOGLE_CLOUD_PROJECT=your-project-id

PowerShell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"

성능 최적화

trace 데이터 보고가 성능에 미치는 영향을 줄이려면 백그라운드 프로세스에서 이 데이터를 전송해야 합니다. trace 데이터의 백그라운드 보고를 구성하려면 StackdriverExporter를 초기화할 때 transport=AsyncTransport를 포함합니다.

플랫폼 구성

Google Cloud 및 기타 플랫폼에서 Cloud Trace를 사용할 수 있습니다.

Google Cloud에서 실행

애플리케이션이 Google Cloud에서 실행되는 경우 클라이언트 라이브러리에 서비스 계정 형식으로 사용자 인증 정보를 제공할 필요가 없습니다. 하지만 Google Cloud Platform에 Cloud Trace API 액세스 범위가 사용 설정되어 있는지 확인해야 합니다.

지원되는 Google Cloud 환경 목록은 환경 지원을 참조하세요.

다음 구성에서는 기본 액세스 범위 설정이 Cloud Trace API를 사용 설정합니다.

  • App Engine 가변형 환경
  • App Engine 표준 환경

  • Google Kubernetes Engine(GKE)

  • Compute Engine

  • Cloud Run

커스텀 액세스 범위를 사용하는 경우 Cloud Trace API 액세스 범위가 사용 설정되어 있는지 확인해야 합니다.

  • Google Cloud Console을 사용하여 환경의 액세스 범위를 구성하는 방법에 대한 자세한 내용은 Google Cloud 프로젝트 구성을 참조하세요.

  • gcloud 사용자의 경우 --scopes 플래그를 사용하여 액세스 범위를 지정하고 trace.append Cloud Trace API 액세스 범위를 포함합니다. 예를 들어 Cloud Trace API만 사용 설정된 GKE 클러스터를 만들려면 다음을 수행합니다.

    gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append

로컬 및 기타 위치에서 실행

애플리케이션이 Google Cloud 외부에서 실행되는 경우 클라이언트 라이브러리에 사용자 인증 정보를 서비스 계정 형식으로 제공해야 합니다. 서비스 계정에는 Cloud Trace 에이전트 역할이 포함되어야 합니다. 자세한 내용은 서비스 계정 만들기를 참조하세요.

Google Cloud 클라이언트 라이브러리는 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하여 애플리케이션의 사용자 인증 정보를 찾습니다.

세 가지 방법 중 하나로 이러한 사용자 인증 정보를 제공할 수 있습니다.

  • gcloud auth application-default login 실행

  • 운영체제의 기본 경로에 서비스 계정을 배치합니다. 다음은 Windows 및 Linux의 기본 경로를 보여줍니다.

    • Windows: %APPDATA%/gcloud/application_default_credentials.json

    • Linux: $HOME/.config/gcloud/application_default_credentials.json

  • GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 서비스 계정 경로로 설정합니다.

Linux/macOS

    export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

Windows

    set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"

샘플 Flask 애플리케이션

Flask를 사용하는 샘플 Python 애플리케이션은 Trace 빠른 시작을 참조하세요.

Trace 데이터를 캡처하도록 애플리케이션이 계측되는 방법에 대한 자세한 내용은 계측을 참조하세요.

Trace 보기

배포 후에는 Google Cloud 콘솔 Trace 뷰어에서 trace를 볼 수 있습니다.

Trace 뷰어 페이지로 이동

문제 해결

Cloud Trace 문제 해결에 대한 자세한 내용은 문제 해결 페이지를 참조하세요.

리소스