Ruby 用 Stackdriver Trace の設定

Stackdriver Trace は、Ruby 用の Stackdriver Trace ライブラリを使用する Ruby アプリケーションで使用できます。

ライブラリのインストール

  1. Ruby 2.2 以降をインストールします。

  2. Gemfile に Stackdriver gem を追加します。

    gem "stackdriver"
  3. Bundler を使用して gem をインストールします。

    bundle install
    

ライブラリの有効化

Rails

Ruby on Rails を使用している場合、Bundler は起動時に、ライブラリをアプリケーションに自動的に読み込みます。

Rails でない場合

他のラックベースのアプリケーションでは、ライブラリが提供するラック ミドルウェアを使用できます。

require "google/cloud/trace"

use Google::Cloud::Trace::Middleware

ライブラリの詳細について、あるいはライブラリに関する問題を報告するには、ライブラリのソースコード リポジトリをご覧ください。

クライアントの構成

Ruby 用の Stackdriver Trace ライブラリの動作をカスタマイズすることができます。設定可能なオプションのリストについては、ライブラリの構成をご覧ください。

カスタム トレーススパンの追加

Ruby 用の Stackdriver Trace ライブラリは、Rack アプリケーションが受け取るリクエストごとに自動的にトレース レコードを作成します。各リクエスト内にカスタム トレーススパンを追加することもできます。

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 Platform での実行

Google Cloud Platform 上で実行されているインスタンスで Stackdriver Trace API アクセス スコープが有効になっている場合は、そのインスタンス用の認証情報を提供する必要はありません。ただし、インスタンスに対して可能な限り広いアクセス スコープを設定してから、Cloud Identity and Access Management を使用して、アクセスを制限することをおすすめします。

App Engine フレキシブル環境

App Engine フレキシブル環境では Stackdriver Trace API アクセス スコープがデフォルトで有効であり、認証情報やプロジェクト ID を提供しなくても Ruby 用 Stackdriver Trace ライブラリを使用できます。

App Engine スタンダード環境

App Engine スタンダード環境では Stackdriver Trace API アクセス スコープがデフォルトで有効であり、認証情報やプロジェクト ID を提供しなくても Ruby 用 Stackdriver Trace ライブラリを使用できます。

GKE

GKE で Trace を使用するには、クラスタの作成時に trace.append OAuth アクセス スコープを追加します。

gcloud を使ってクラスタを作成するには、次の手順に従います。

  1. (省略可)gcloud を最新バージョンに更新します。
    gcloud components update
  2. デフォルトのプロジェクト ID を設定します。
    gcloud config set project [PROJECT_ID]
  3. ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone [COMPUTE_ZONE]
  4. リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region [COMPUTE_REGION]
  5. create コマンドを発行します。
    gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/trace.append

クラスタの作成の詳細については、クラスタの作成をご覧ください。

Compute Engine

Compute Engine VM インスタンスの場合は、各 VM インスタンスに Stackdriver Trace API アクセス スコープ trace.append を明示的に有効にする必要があります。Google Cloud Platform Console から新しいインスタンスを作成する場合は、[インスタンスの作成] パネルの [ID と API へのアクセス] セクションで次の値を選択します。

  1. [サービス アカウント] には [Compute Engine のデフォルトのサービス アカウント] を選択します
  2. [アクセス スコープ] には [すべての Cloud API に完全アクセス権を許可] を選択します

Compute Engine のデフォルト以外のサービス アカウントを使用するには、インスタンスのサービス アカウントの作成と有効化ローカルやその他の場所での実行をご覧ください。重要なのは、使用するサービス アカウントに Cloud Trace Agent の役割があることです。

ローカルやその他の場所での実行

Trace を GCP 以外で実行するには、GCP プロジェクト ID と該当するサービス アカウントの認証情報を Trace に直接提供する必要があります。これは、自分のワークステーション、データセンターのコンピュータ、または別のクラウド プロバイダの VM インスタンスでライブラリを実行する場合に適用されます。手順は次のとおりです。

  1. GCP プロジェクトに新しいサービス アカウントを作成します。少なくとも Cloud Trace エージェントの役割が含まれている必要があります。手順については、サービス アカウントの作成をご覧ください。

  2. サービス アカウントの主要な認証情報ファイルをコンピュータにダウンロードします。手順については、サービス アカウントキーの作成と管理をご覧ください。

  3. パラメータ(project_idkeyfile)または環境変数(GOOGLE_CLOUD_PROJECTGOOGLE_APPLICATION_CREDENTIALS)のいずれかを使用して、Trace に GCP プロジェクト ID と認証情報ファイルの場所を指定します。

詳細については、アプリケーションの認証情報を指定するをご覧ください。

環境変数の使用

Trace に表示される環境変数を定義します。より広範囲に表示される場合、他のアプリケーションの既存の承認を妨げる可能性があります。

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 on Rails 構成インターフェースを介してパラメータを指定します。

# 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

インストゥルメンテーション構成インターフェースの使用

その他のラックベースのアプリケーションで使用する場合は、構成インターフェースを介してパラメータを指定します。

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

トレースの表示

デプロイ後、GCP Console Trace Viewer でトレースを表示できます。

Trace Viewer のページに移動

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。