Ruby용 Cloud Trace 설정

Ruby용 Cloud Trace 라이브러리를 사용하여 Ruby 애플리케이션용 Cloud Trace를 사용 설정할 수 있습니다.

라이브러리 설치

  1. Ruby 2.2+ 이상을 설치합니다.

  2. Stackdriver gem을 Gemfile에 추가합니다.

    gem "stackdriver"
  3. 번들러를 사용하여 Gem을 설치합니다.

    bundle install
    

라이브러리 사용 설정

Rails

Ruby on Rails를 사용하고 있는 경우, 번들러가 시작되면 자동으로 라이브러리를 애플리케이션에 로드합니다.

Rails 외

다른 랙 기반 애플리케이션은 라이브러리가 제공하는 랙 미들웨어를 사용할 수 있습니다.

require "google/cloud/trace"

use Google::Cloud::Trace::Middleware

자세한 내용을 알아보거나 라이브러리 문제를 보고하려면 라이브러리의 소스 코드 저장소를 참조하세요.

클라이언트 구성

Ruby용 Cloud Trace 라이브러리의 동작을 맞춤설정할 수 있습니다. 가능한 구성 옵션 목록에 대해서는 라이브러리 구성을 참조하세요.

커스텀 Trace 스팬 추가

Ruby용 Cloud Trace 라이브러리는 Rack 애플리케이션이 수신하는 각 요청에 대한 trace 레코드를 자동으로 생성합니다. 사용자는 각 요청 내에 커스텀 trace 스팬을 추가할 수도 있습니다.

Google::Cloud::Trace.in_span "my_task" do |_span|
  # Insert task

  Google::Cloud::Trace.in_span "my_subtask" do |subspan|
    # Insert subtask
  end
end

플랫폼 구성

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

Google Cloud에서 실행

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

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

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

  • Google Kubernetes Engine(GKE)

  • Compute Engine

커스텀 액세스 범위를 사용하는 경우 Cloud Trace API 액세스 범위가 사용 설정되어 있는지 확인해야 합니다. 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 에이전트 역할이 포함되어야 합니다. 자세한 내용은 서비스 계정 만들기를 참조하세요.

Ruby용 Google Cloud 클라이언트 라이브러리는 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하여 애플리케이션의 사용자 인증 정보를 찾습니다. 다음 섹션에서는 이러한 사용자 인증 정보와 Google Cloud 프로젝트 ID를 설정하는 방법을 설명합니다.

Google Cloud 프로젝트 ID 및 사용자 인증 정보 설정

이 섹션에서는 Ruby 애플리케이션에서 Google Cloud 프로젝트 ID, 사용자 인증 정보 또는 둘 다 설정하는 데 사용할 수 있는 세 가지 접근 방식을 설명합니다.

환경 변수

Google Cloud 프로젝트 ID를 명시적으로 설정하지 않으면 google-cloud Ruby 라이브러리가 환경 변수 GOOGLE_CLOUD_PROJECT의 설정 여부를 자동으로 확인하며, 설정된 경우 GOOGLE_CLOUD_PROJECT 값을 Google Cloud 프로젝트 ID로 사용합니다. 자세한 내용은 인증을 참조하세요.

앞에서 설명한 것처럼 Google Cloud 클라이언트 라이브러리는 애플리케이션 기본 사용자 인증 정보(ADC)를 사용하여 애플리케이션의 사용자 인증 정보를 찾습니다. GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정하여 이러한 사용자 인증 정보를 제공합니다.

Linux/macOS

export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Windows

명령어 창:

set GOOGLE_CLOUD_PROJECT=your-project-id
set GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

PowerShell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"
$env:GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"

Ruby on Rails 구성 인터페이스

Ruby on Rails를 사용하는 경우 Ruby의 한 가지 대안은 구성 인터페이스를 통해 매개변수를 제공하는 것입니다.

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Trace specific parameters
  config.google_cloud.trace.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.trace.keyfile    = "/path/to/service-account.json"
end

또한 다음을 사용해 모든 Stackdriver Gem에 공유 구성을 설정할 수도 있습니다.

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

Rails가 프로덕션 모드에서 실행하는 경우 Trace는 기본적으로 사용 설정됩니다. 개발 모드에서 Trace를 사용하려면 다음을 추가하세요.

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_trace = true
end

계측 구성 인터페이스

Ruby의 또 다른 대안은 다른 Rack 기반 애플리케이션에서 사용할 경우 구성 인터페이스를 통해 매개변수를 제공하는 것입니다.

require "google/cloud/trace"

Google::Cloud.configure do |config|
  # Stackdriver Trace specific parameters
  config.trace.project_id = "YOUR-PROJECT-ID"
  config.trace.keyfile    = "/path/to/service-account.json"
end

또한 다음을 사용해 모든 Stackdriver Gem에 공유 구성을 설정할 수도 있습니다.

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

Trace 보기

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

trace 뷰어 페이지로 이동

문제해결

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

리소스