Melengkapi aplikasi Ruby untuk Error Reporting

Anda dapat mengirim laporan error ke Error Reporting dari aplikasi Ruby menggunakan library Error Reporting untuk Ruby. Gunakan library Error Reporting untuk Ruby guna membuat grup error untuk kasus berikut:

  • Bucket log Anda memiliki kunci enkripsi yang dikelola pelanggan (CMEK).
  • Bucket log Anda tidak berada di region global.
  • Anda ingin melaporkan peristiwa error kustom.

Error Reporting terintegrasi dengan beberapa layanan Google Cloud, seperti App Engine, Compute Engine, dan Google Kubernetes Engine. Error Reporting menampilkan error yang dicatat ke Cloud Logging oleh aplikasi yang berjalan di layanan tersebut. Untuk mengetahui informasi selengkapnya, buka Menjalankan di Google Cloud di halaman ini.

Anda juga dapat mengirim data error ke Error Reporting menggunakan Logging. Untuk mengetahui informasi tentang persyaratan pemformatan data, baca Memformat pesan error di Logging.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Error Reporting API .

    Enable the API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Enable the Error Reporting API .

    Enable the API

  8. Instal Ruby 2.2+ atau yang lebih baru.

Menginstal library klien

Library Error Reporting untuk Ruby memungkinkan Anda memantau dan melihat error yang dilaporkan oleh aplikasi Ruby yang berjalan hampir di mana saja.

  1. Tambahkan gem google-cloud-error_reporting ke Gemfile Anda:

    gem "google-cloud-error_reporting"
  2. Gunakan Bundler untuk menginstal gem:

    bundle install

Mengaktifkan library

Jika Anda menggunakan Ruby on Rails, Bundler secara otomatis memuat library ke aplikasi Anda saat dimulai.

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

require "google/cloud/error_reporting"

use Google::Cloud::ErrorReporting::Middleware

Untuk informasi selengkapnya tentang penginstalan, baca dokumentasi library Error Reporting untuk Ruby. Anda juga dapat melaporkan masalah menggunakan issue tracker.

Mengonfigurasi library klien

Anda dapat menyesuaikan perilaku library Error Reporting untuk Ruby. Lihat konfigurasi library untuk daftar opsi konfigurasi yang memungkinkan.

Menjalankan aplikasi di Google Cloud

Untuk membuat grup error menggunakan projects.events.report, akun layanan Anda memerlukan peran Penulis Error Reporting (roles/errorreporting.writer).

Beberapa layanan Google Cloud secara otomatis memberikan peran Error Reporting Writer (roles/errorreporting.writer) ke akun layanan yang sesuai. Namun, Anda harus memberikan peran ini ke akun layanan yang sesuai untuk beberapa layanan.

Lingkungan fleksibel App Engine

App Engine memberikan peran Penulis Pelaporan Error (roles/errorreporting.writer) ke akun layanan default Anda secara otomatis.

Library Error Reporting untuk Ruby dapat digunakan tanpa perlu memberikan kredensial secara eksplisit.

Error Reporting diaktifkan secara otomatis untuk aplikasi lingkungan fleksibel App Engine. Tidak diperlukan penyiapan tambahan.

Google Kubernetes Engine

Untuk menggunakan Error Reporting dengan Google Kubernetes Engine, lakukan hal berikut:

  1. Pastikan akun layanan yang akan digunakan oleh penampung Anda telah diberi peran Penulis Pelaporan Error (roles/errorreporting.writer).

    Anda dapat menggunakan akun layanan default Compute Engine atau akun layanan kustom.

    Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

  2. Buat cluster Anda dan beri cluster cakupan akses cloud-platform.

    Misalnya, perintah create berikut menentukan cakupan akses cloud-platform dan akun layanan:

    gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
    

Compute Engine

Untuk menggunakan Error Reporting dengan instance VM Compute Engine, lakukan hal berikut:

  1. Pastikan akun layanan yang akan digunakan oleh instance VM Anda telah diberi peran Penulis Error Reporting (roles/errorreporting.writer).

    Anda dapat menggunakan akun layanan default Compute Engine atau akun layanan kustom.

    Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

  2. Di panel navigasi Konsol Google Cloud, pilih Compute Engine, lalu pilih VM instances:

    Buka instance VM

  3. Pilih instance VM yang Anda inginkan untuk menerima cakupan akses cloud-platform.

  4. Klik Hentikan, lalu klik Edit.

  5. Di bagian Identity and API access, pilih akun layanan yang memiliki peran Error Reporting Writer (roles/errorreporting.writer).

  6. Di bagian Access scope, pilih Allow full access to all Cloud APIs, lalu simpan perubahan.

  7. Klik Mulai/Lanjutkan.

Menggunakan antarmuka konfigurasi Ruby on Rails

Agar dapat menggunakan library Error Reporting untuk Ruby dengan framework Ruby on Rails, berikan parameter tersebut melalui antarmuka konfigurasi Ruby on Rails:

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

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

# 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

Error Reporting diaktifkan secara default saat Rails berjalan dalam mode produksi. Untuk mengaktifkan Error Reporting dalam mode pengembangan, tambahkan kode berikut:

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

Menggunakan antarmuka konfigurasi instrumentasi

Agar dapat menggunakan library Error Reporting untuk Ruby di aplikasi berbasis Rack lainnya, berikan parameter tersebut melalui antarmuka konfigurasi:

require "google/cloud/error_reporting"

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

Anda juga dapat menetapkan konfigurasi bersama untuk semua gem dengan Kemampuan Observasi Google Cloud menggunakan kode berikut:

require "stackdriver"

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

Contoh

Melaporkan error dalam framework berbasis Rack

Library Error Reporting untuk Ruby memudahkan integrasi Error Reporting ke dalam framework web Ruby berbasis Rack yang populer seperti Ruby on Rails dan Sinatra. Jika diaktifkan, library akan otomatis melaporkan pengecualian yang diambil dari stack Rack aplikasi.

Melaporkan error secara manual

Anda dapat melaporkan error secara manual dengan memanggil metode report, seperti yang terlihat pada contoh berikut:

require "google/cloud/error_reporting"

begin
  raise "Something went wrong"
rescue StandardError => e
  Google::Cloud::ErrorReporting.report e
end

Menjalankan aplikasi di lingkungan pengembangan lokal

Agar dapat menggunakan library Error Reporting untuk Ruby di lingkungan pengembangan lokal, seperti menjalankan library di workstation Anda sendiri, Anda harus menyediakan library Error Reporting untuk Ruby dengan kredensial default aplikasi lokal. Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi ke Error Reporting.

Untuk menggunakan contoh Ruby di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

  1. Menginstal Google Cloud CLI.
  2. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  3. Buat kredensial autentikasi lokal untuk Akun Google Anda:

    gcloud auth application-default login

Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.

Metode projects.events.report juga mendukung kunci API. Jika ingin menggunakan kunci API untuk autentikasi, Anda tidak perlu menyiapkan file Kredensial Default Aplikasi lokal. Untuk informasi selengkapnya, lihat Membuat kunci API dalam dokumentasi autentikasi Google Cloud.

Menggunakan antarmuka konfigurasi Ruby on Rails

Agar dapat menggunakan library Error Reporting untuk Ruby dengan framework Ruby on Rails, berikan parameter tersebut melalui antarmuka konfigurasi Ruby on Rails:

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

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

# 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

Error Reporting diaktifkan secara default saat Rails berjalan dalam mode produksi. Untuk mengaktifkan Error Reporting dalam mode pengembangan, tambahkan kode berikut:

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

Menggunakan antarmuka konfigurasi instrumentasi

Agar dapat menggunakan library Error Reporting untuk Ruby di aplikasi berbasis Rack lainnya, berikan parameter tersebut melalui antarmuka konfigurasi:

require "google/cloud/error_reporting"

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

Anda juga dapat menetapkan konfigurasi bersama untuk semua gem dengan Kemampuan Observasi Google Cloud menggunakan kode berikut:

require "stackdriver"

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

Melihat laporan error

Di panel navigasi konsol Google Cloud, pilih Error Reporting, lalu pilih project Google Cloud Anda:

Buka Error Reporting

Untuk informasi selengkapnya, lihat Melihat Error.