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 でない場合

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

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

Ruby 用の Stackdriver Trace ライブラリは、Stackdriver Trace API アクセス スコープがインスタンスで有効にされている限り、Google Cloud Platform で実行されているそのインスタンスの認証情報を手動で提供しなくても動作します。

App Engine

Google App Engine では、デフォルトで Stackdriver Trace API アクセス スコープが有効になっており、認証情報やプロジェクト ID を提供せずに Ruby 用の Stackdriver Trace ライブラリを使用できます。

Kubernetes Engine

Google Kubernetes Engine で、クラスタの作成時に trace.append OAuth スコープを明示的に追加する必要があります。

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

Compute Engine

Google Compute Engine のインスタンスでは、各インスタンスの trace.append Stackdriver Trace API アクセス スコープを明示的に有効にする必要があります。Google Cloud Platform Console から新しいインスタンスを作成する場合は、[ID と API へのアクセス] の下でこれを行うことができます。Compute Engine のデフォルト サービス アカウントを使用し、[アクセス スコープ] の [すべての Cloud API に完全アクセス権を許可] を選択します。

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

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

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

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

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

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

環境変数の使用

Stackdriver 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 のサポートページをご覧ください。