為 Ruby 設定 Stackdriver Trace

您可以使用 Ruby 適用的 Stackdriver Trace 程式庫來啟用 Stackdriver Trace 以追蹤 Ruby 應用程式的效能。

安裝程式庫

  1. 安裝 Ruby 2.2+ 或以上版本。

  2. 將 Stackdriver Gem 新增到 Gemfile:

    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 上執行

如果在 Google Cloud Platform 上運作的執行個體啟用了 Stackdriver Trace API 存取權範圍,您就不需要為該執行個體提供驗證憑證。不過,我們建議您儘可能為執行個體設定最大的存取權範圍,然後使用 Cloud Identity & 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

如要將 Trace 與 GKE 搭配使用,請在建立叢集時新增 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 執行個體啟用 trace.append Stackdriver Trace API 存取權範圍。透過 Google Cloud Platform 主控台新建執行個體時,請在「Create an instance」(建立執行個體) 面板的「Identity and API access」(身分與 API 存取權) 部分選取下列值:

  1. 為「Service account」(服務帳戶)選取 [Compute Engine default service account] (Compute Engine 預設服務帳戶)
  2. 為「Access Scopes」(存取權範圍) 選取 [Allow full access to all Cloud APIs] (允許所有 Cloud API 的完整存取權)。

如要使用 Compute Engine 預設服務帳戶以外的帳戶,請參閱為執行個體建立及啟用服務帳戶,以及在本機和其他地方執行一節。重點是您使用的服務帳戶必須具有 Cloud Trace 代理者角色

在本機及其他地方執行

如要在 GCP 以外的地方執行 Trace,您必須將 GCP 專案 ID 和適當的服務帳戶憑證直接提供給 Trace。在您自己的工作站、資料中心的電腦或其他雲端服務供應商的 VM 執行個體上執行程式庫時,也必須這樣做。執行步驟如下:

  1. 在您的 GCP 專案中建立新的服務帳戶。這個帳戶必須至少包含 Cloud Trace 代理者角色。如需詳細操作說明,請參閱建立服務帳戶

  2. 將服務帳戶的金鑰憑證檔案下載到您的電腦。如需詳細操作說明,請參閱建立及管理服務帳戶金鑰

  3. 使用參數 (project_idkeyfile) 或環境變數 (GOOGLE_CLOUD_PROJECTGOOGLE_APPLICATION_CREDENTIALS),將 GCP 專案 ID 和憑證檔案的位置提供給 Trace。

詳情請參閱為應用程式提供憑證一節。

使用環境變數

定義環境變數在哪種情況下與 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

使用檢測設定介面:

在其他以 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

查看追蹤記錄

完成部署之後,您可在「GCP Console Trace Viewer」(GCP 主控台追蹤記錄檢視器) 中查看追蹤記錄。

前往「Trace Viewer」(追蹤記錄檢視器) 頁面

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Trace
需要協助嗎?請前往我們的支援網頁