Menyiapkan Cloud Trace untuk Ruby

Anda dapat mengaktifkan Cloud Trace untuk aplikasi Ruby menggunakan library Cloud Trace untuk Ruby.

Menginstal library

  1. Instal Ruby 2.2+ atau yang lebih baru.

  2. Tambahkan gem Stackdriver ke Gemfile Anda:

    gem "stackdriver"
  3. Gunakan bundler untuk menginstal gem:

    bundle install
    

Mengaktifkan library

Rails

Jika Anda menggunakan Ruby on Rails, pemaket otomatis memuat library ke dalam aplikasi saat dimulai.

Bukan Rel

Aplikasi berbasis Rack lainnya dapat menggunakan Rack Middleware yang disediakan oleh library:

require "google/cloud/trace"

use Google::Cloud::Trace::Middleware

Untuk mengetahui informasi selengkapnya atau melaporkan masalah terkait library, lihat repositori kode sumber library.

Mengonfigurasi klien

Anda dapat menyesuaikan perilaku library Cloud Trace untuk Ruby. Lihat konfigurasi library untuk daftar kemungkinan opsi konfigurasi.

Menambahkan span Trace kustom

Library Cloud Trace untuk Ruby secara otomatis membuat rekaman aktivitas untuk setiap permintaan yang diterima aplikasi Rack Anda. Anda juga dapat menambahkan span pelacakan kustom dalam setiap permintaan:

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

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

Konfigurasi platform Anda

Anda dapat menggunakan Cloud Trace di Google Cloud dan platform lainnya.

Berjalan di Google Cloud

Saat aplikasi Anda berjalan di Google Cloud, Anda tidak perlu memberikan kredensial autentikasi dalam bentuk akun layanan ke library klien. Namun, Anda harus memastikan bahwa platform Google Cloud Anda telah mengaktifkan cakupan akses Cloud Trace API.

Untuk mengetahui daftar lingkungan Google Cloud yang didukung, lihat Dukungan lingkungan.

Untuk konfigurasi berikut, setelan cakupan akses default akan mengaktifkan Cloud Trace API:

Jika menggunakan cakupan akses kustom, Anda harus memastikan cakupan akses API Cloud Trace diaktifkan:

  • Untuk mengetahui informasi cara mengonfigurasi cakupan akses untuk lingkungan Anda menggunakan Konsol Google Cloud, lihat Mengonfigurasi project Google Cloud.

  • Untuk pengguna gcloud, tentukan cakupan akses menggunakan flag --scopes dan sertakan cakupan akses Cloud Trace API trace.append. Misalnya, untuk membuat cluster GKE dengan hanya Cloud Trace API yang diaktifkan, lakukan hal berikut:

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

Berjalan secara lokal dan di tempat lain

Jika aplikasi Anda berjalan di luar Google Cloud, Anda harus memberikan kredensial autentikasi dalam bentuk akun layanan ke library klien. Akun layanan harus berisi peran agen Cloud Trace. Untuk mengetahui petunjuknya, lihat Membuat akun layanan.

Library klien Google Cloud untuk Ruby menggunakan Application default credentials (ADC) untuk menemukan kredensial aplikasi Anda. Bagian berikut menjelaskan cara menetapkan kredensial ini dan project ID Google Cloud.

Menetapkan project ID dan kredensial Google Cloud

Bagian ini menjelaskan tiga pendekatan berbeda yang dapat Anda gunakan untuk menetapkan project ID Google Cloud, kredensial autentikasi, atau keduanya di aplikasi Ruby.

Variabel lingkungan

Jika Anda tidak secara eksplisit menetapkan project ID Google Cloud, library Ruby google-cloud akan otomatis menentukan apakah variabel lingkungan GOOGLE_CLOUD_PROJECT sudah ditetapkan atau tidak, dan jika demikian, library akan menggunakan nilai GOOGLE_CLOUD_PROJECT sebagai project ID Google Cloud Anda. Untuk mengetahui informasi selengkapnya, buka Autentikasi.

Seperti yang dijelaskan sebelumnya, library klien Google Cloud menggunakan Kredensial default aplikasi (ADC) untuk menemukan kredensial aplikasi Anda. Anda dapat memberikan kredensial ini dengan menetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS:

Linux/macOS

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

Windows

Jendela perintah:

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"

Antarmuka konfigurasi Ruby on Rails

Jika menggunakan Ruby on Rails, Anda dapat menyediakan parameter melalui antarmuka konfigurasi 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

Anda juga dapat menetapkan konfigurasi bersama untuk semua gem Stackdriver menggunakan:

# 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

Pelacakan diaktifkan secara default saat Rails berjalan dalam mode produksi. Untuk mengaktifkan Trace dalam mode pengembangan, tambahkan hal berikut:

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

Antarmuka konfigurasi instrumentasi

Alternatif lain untuk Ruby adalah menyediakan parameter melalui antarmuka konfigurasi saat digunakan di aplikasi berbasis Rack lainnya:

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

Anda juga dapat menetapkan konfigurasi bersama untuk semua gem Stackdriver menggunakan:

require "stackdriver"

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

Lihat pelacakan

Di panel navigasi konsol Google Cloud, pilih Trace, lalu pilih Trace explorer:

Buka Trace explorer

Pemecahan masalah

Untuk mengetahui informasi tentang cara memecahkan masalah terkait Cloud Trace, buka halaman Pemecahan masalah.

Referensi